C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::parser< T >::stack_limit_handler Class Reference
Collaboration diagram for exprtk::parser< T >::stack_limit_handler:
[legend]

Public Types

typedef parser< T > parser_t

Public Member Functions

 stack_limit_handler (parser< T > &p)
 ~stack_limit_handler ()
bool operator! ()

Private Member Functions

 stack_limit_handler (const stack_limit_handler &)
stack_limit_handleroperator= (const stack_limit_handler &)

Private Attributes

parser_tparser_
bool limit_exceeded_

Detailed Description

template<typename T>
class exprtk::parser< T >::stack_limit_handler

Definition at line 23150 of file exprtk.hpp.

Member Typedef Documentation

◆ parser_t

template<typename T>
typedef parser<T> exprtk::parser< T >::stack_limit_handler::parser_t

Definition at line 23154 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ stack_limit_handler() [1/2]

template<typename T>
exprtk::parser< T >::stack_limit_handler::stack_limit_handler ( parser< T > & p)
inlineexplicit

Definition at line 23156 of file exprtk.hpp.

23157 : parser_(p)
23158 , limit_exceeded_(false)
23159 {
23160 if (++parser_.state_.stack_depth > parser_.settings_.max_stack_depth_)
23161 {
23162 limit_exceeded_ = true;
23163 parser_.set_error(make_error(
23165 "ERR000 - Current stack depth " + details::to_str(parser_.state_.stack_depth) +
23166 " exceeds maximum allowed stack depth of " + details::to_str(parser_.settings_.max_stack_depth_),
23168 }
23169 }

References limit_exceeded_, exprtk::parser< T >::parser(), and parser_.

Referenced by operator=(), and stack_limit_handler().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~stack_limit_handler()

template<typename T>
exprtk::parser< T >::stack_limit_handler::~stack_limit_handler ( )
inline

Definition at line 23171 of file exprtk.hpp.

23172 {
23173 assert(parser_.state_.stack_depth > 0);
23174 parser_.state_.stack_depth--;
23175 }

References parser_.

◆ stack_limit_handler() [2/2]

template<typename T>
exprtk::parser< T >::stack_limit_handler::stack_limit_handler ( const stack_limit_handler & )
private

References exprtk_delete, and stack_limit_handler().

Here is the call graph for this function:

Member Function Documentation

◆ operator!()

template<typename T>
bool exprtk::parser< T >::stack_limit_handler::operator! ( )
inline

Definition at line 23177 of file exprtk.hpp.

23178 {
23179 return limit_exceeded_;
23180 }

References limit_exceeded_.

◆ operator=()

template<typename T>
stack_limit_handler & exprtk::parser< T >::stack_limit_handler::operator= ( const stack_limit_handler & )
private

References exprtk_delete, and stack_limit_handler().

Here is the call graph for this function:

Member Data Documentation

◆ limit_exceeded_

template<typename T>
bool exprtk::parser< T >::stack_limit_handler::limit_exceeded_
private

Definition at line 23188 of file exprtk.hpp.

Referenced by operator!(), and stack_limit_handler().

◆ parser_

template<typename T>
parser_t& exprtk::parser< T >::stack_limit_handler::parser_
private

Definition at line 23187 of file exprtk.hpp.

Referenced by stack_limit_handler(), and ~stack_limit_handler().


The documentation for this class was generated from the following file: