C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
exprtk::symbol_table< T >::control_block Struct Reference

#include <exprtk.hpp>

Collaboration diagram for exprtk::symbol_table< T >::control_block:
[legend]

Classes

struct  st_data
 

Public Member Functions

 control_block ()
 
 control_block (st_data *data)
 
 ~control_block ()
 
void set_mutability (const symtab_mutability_type mutability)
 

Static Public Member Functions

static control_blockcreate ()
 
template<typename SymTab >
static void destroy (control_block *&cntrl_blck, SymTab *sym_tab)
 

Public Attributes

std::size_t ref_count
 
st_datadata_
 
symtab_mutability_type mutability_
 

Detailed Description

template<typename T>
struct exprtk::symbol_table< T >::control_block

Definition at line 20351 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ control_block() [1/2]

template<typename T >
exprtk::symbol_table< T >::control_block::control_block ( )
inline

Definition at line 20409 of file exprtk.hpp.

◆ control_block() [2/2]

template<typename T >
exprtk::symbol_table< T >::control_block::control_block ( st_data data)
inlineexplicit

Definition at line 20415 of file exprtk.hpp.

20416 : ref_count(1)
20417 , data_(data)
20419 {}

◆ ~control_block()

template<typename T >
exprtk::symbol_table< T >::control_block::~control_block ( )
inline

Definition at line 20421 of file exprtk.hpp.

20422 {
20423 if (data_ && (0 == ref_count))
20424 {
20426 }
20427 }

References exprtk::symbol_table< T >::control_block::data_, exprtk::symbol_table< T >::control_block::st_data::destroy(), and exprtk::symbol_table< T >::control_block::ref_count.

Here is the call graph for this function:

Member Function Documentation

◆ create()

template<typename T >
static control_block * exprtk::symbol_table< T >::control_block::create ( )
inlinestatic

Definition at line 20429 of file exprtk.hpp.

20430 {
20431 return (new control_block);
20432 }

◆ destroy()

template<typename T >
template<typename SymTab >
static void exprtk::symbol_table< T >::control_block::destroy ( control_block *&  cntrl_blck,
SymTab *  sym_tab 
)
inlinestatic

Definition at line 20435 of file exprtk.hpp.

20436 {
20437 if (cntrl_blck)
20438 {
20439 if (
20440 (0 != cntrl_blck->ref_count) &&
20441 (0 == --cntrl_blck->ref_count)
20442 )
20443 {
20444 if (sym_tab)
20445 sym_tab->clear();
20446
20447 delete cntrl_blck;
20448 }
20449
20450 cntrl_blck = 0;
20451 }
20452 }

References exprtk::symbol_table< T >::control_block::ref_count.

Referenced by exprtk::symbol_table< T >::operator=(), and exprtk::symbol_table< T >::~symbol_table().

Here is the caller graph for this function:

◆ set_mutability()

template<typename T >
void exprtk::symbol_table< T >::control_block::set_mutability ( const symtab_mutability_type  mutability)
inline

Definition at line 20454 of file exprtk.hpp.

20455 {
20457 }
symtab_mutability_type mutability() const
Definition exprtk.hpp:20503

References exprtk::symbol_table< T >::mutability(), and exprtk::symbol_table< T >::control_block::mutability_.

Referenced by exprtk::symbol_table< T >::symbol_table().

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

Member Data Documentation

◆ data_

template<typename T >
st_data* exprtk::symbol_table< T >::control_block::data_

◆ mutability_

template<typename T >
symtab_mutability_type exprtk::symbol_table< T >::control_block::mutability_

◆ ref_count

template<typename T >
std::size_t exprtk::symbol_table< T >::control_block::ref_count

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