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 19667 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 19725 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 19731 of file exprtk.hpp.

19732 : ref_count(1)
19733 , data_(data)
19735 {}

◆ ~control_block()

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

Definition at line 19737 of file exprtk.hpp.

19738 {
19739 if (data_ && (0 == ref_count))
19740 {
19742 }
19743 }

Member Function Documentation

◆ create()

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

Definition at line 19745 of file exprtk.hpp.

19746 {
19747 return (new control_block);
19748 }

◆ 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 19751 of file exprtk.hpp.

19752 {
19753 if (cntrl_blck)
19754 {
19755 if (
19756 (0 != cntrl_blck->ref_count) &&
19757 (0 == --cntrl_blck->ref_count)
19758 )
19759 {
19760 if (sym_tab)
19761 sym_tab->clear();
19762
19763 delete cntrl_blck;
19764 }
19765
19766 cntrl_blck = 0;
19767 }
19768 }

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

◆ set_mutability()

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

Definition at line 19770 of file exprtk.hpp.

19771 {
19773 }
symtab_mutability_type mutability() const
Definition exprtk.hpp:19819

Member Data Documentation

◆ data_

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

Definition at line 19776 of file exprtk.hpp.

◆ mutability_

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

Definition at line 19777 of file exprtk.hpp.

◆ 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: