exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode > Class Template Reference

#include <exprtk.hpp>

Inheritance diagram for exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >:
Inheritance graph

Public Types

typedef details::functor_t< T > functor_t
 
typedef functor_t::bfunc_t bfunc_t
 
typedef T value_type
 
typedef T0_ T0
 
typedef T1_ T1
 
typedef T2_ T2
 
typedef T3_ T3
 
typedef T0oT1oT2oT3< T, T0, T1, T2, T3, ProcessMode > node_type
 
typedef ProcessMode process_mode_t
 
typedef expression_node< T > * expression_ptr
 
typedef node_collector_interface< expression_node< T > > nci_t
 
typedef nci_t::noderef_list_t noderef_list_t
 
typedef node_depth_base< expression_node< T > > ndb_t
 
typedef expression_node< T > * node_ptr_t
 
typedef expression_node< T > ** node_pp_t
 

Public Member Functions

 T0oT1oT2oT3 (T0 p0, T1 p1, T2 p2, T3 p3, bfunc_t p4, bfunc_t p5, bfunc_t p6)
 
value () const
 
T0 t0 () const
 
T1 t1 () const
 
T2 t2 () const
 
T3 t3 () const
 
bfunc_t f0 () const
 
bfunc_t f1 () const
 
bfunc_t f2 () const
 
std::string type_id () const
 
virtual expression_node< T > * branch (const std::size_t &index=0) const
 
virtual node_type type () const
 
virtual void collect_nodes (noderef_list_t &)
 
virtual std::size_t node_depth () const
 
std::size_t compute_node_depth (const expression_node< T > *const &node) const
 
std::size_t compute_node_depth (const std::pair< expression_node< T > *, bool > &branch) const
 
std::size_t compute_node_depth (const std::pair< expression_node< T > *, bool >(&branch)[N]) const
 
std::size_t compute_node_depth (const BranchType &n0, const BranchType &n1) const
 
std::size_t compute_node_depth (const BranchType &n0, const BranchType &n1, const BranchType &n2) const
 
std::size_t compute_node_depth (const BranchType &n0, const BranchType &n1, const BranchType &n2, const BranchType &n3) const
 
std::size_t compute_node_depth (const Sequence< expression_node< T > *, Allocator > &branch_list) const
 
std::size_t compute_node_depth (const Sequence< std::pair< expression_node< T > *, bool >, Allocator > &branch_list) const
 
void collect (expression_node< T > *const &node, const bool deletable, NodeSequence &delete_node_list) const
 
void collect (const std::pair< expression_node< T > *, bool > &branch, NodeSequence &delete_node_list) const
 
void collect (expression_node< T > *&node, NodeSequence &delete_node_list) const
 
void collect (const std::pair< expression_node< T > *, bool >(&branch)[N], NodeSequence &delete_node_list) const
 
void collect (const Sequence< std::pair< expression_node< T > *, bool >, Allocator > &branch, NodeSequence &delete_node_list) const
 
void collect (const Sequence< expression_node< T > *, Allocator > &branch_list, NodeSequence &delete_node_list) const
 
void collect (const Sequence< expression_node< T > *, AllocatorT > &branch_list, const Sequence< Boolean, AllocatorB > &branch_deletable_list, NodeSequence &delete_node_list) const
 

Static Public Member Functions

static std::string id ()
 
template<typename Allocator >
static expression_node< T > * allocate (Allocator &allocator, T0 p0, T1 p1, T2 p2, T3 p3, bfunc_t p4, bfunc_t p5, bfunc_t p6)
 

Public Attributes

bool depth_set
 
std::size_t depth
 

Member Typedef Documentation

◆ bfunc_t

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef functor_t::bfunc_t exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::bfunc_t

◆ expression_ptr

template<typename T >
typedef expression_node<T>* exprtk::details::expression_node< T >::expression_ptr
inherited

◆ functor_t

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef details::functor_t<T> exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::functor_t

◆ nci_t

template<typename T >
typedef node_collector_interface<expression_node<T> > exprtk::details::expression_node< T >::nci_t
inherited

◆ ndb_t

template<typename T >
typedef node_depth_base<expression_node<T> > exprtk::details::expression_node< T >::ndb_t
inherited

◆ node_pp_t

typedef expression_node< T > ** exprtk::details::node_collector_interface< expression_node< T > >::node_pp_t
inherited

◆ node_ptr_t

typedef expression_node< T > * exprtk::details::node_collector_interface< expression_node< T > >::node_ptr_t
inherited

◆ node_type

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T0oT1oT2oT3<T,T0,T1,T2,T3,ProcessMode> exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::node_type

◆ noderef_list_t

template<typename T >
typedef nci_t::noderef_list_t exprtk::details::expression_node< T >::noderef_list_t
inherited

◆ process_mode_t

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef ProcessMode exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::process_mode_t

◆ T0

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T0_ exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::T0

◆ T1

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T1_ exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::T1

◆ T2

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T2_ exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::T2

◆ T3

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T3_ exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::T3

◆ value_type

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
typedef T exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::value_type

Constructor & Destructor Documentation

◆ T0oT1oT2oT3()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::T0oT1oT2oT3 ( T0  p0,
T1  p1,
T2  p2,
T3  p3,
bfunc_t  p4,
bfunc_t  p5,
bfunc_t  p6 
)
inline

Member Function Documentation

◆ allocate()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
template<typename Allocator >
static expression_node< T > * exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::allocate ( Allocator &  allocator,
T0  p0,
T1  p1,
T2  p2,
T3  p3,
bfunc_t  p4,
bfunc_t  p5,
bfunc_t  p6 
)
inlinestatic

◆ branch()

◆ collect() [1/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( const Sequence< expression_node< T > *, Allocator > &  branch_list,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [2/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( const Sequence< expression_node< T > *, AllocatorT > &  branch_list,
const Sequence< Boolean, AllocatorB > &  branch_deletable_list,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [3/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( const Sequence< std::pair< expression_node< T > *, bool >, Allocator > &  branch,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [4/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( const std::pair< expression_node< T > *, bool > &  branch,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [5/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( const std::pair< expression_node< T > *, bool >(&)  branch[N],
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [6/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( expression_node< T > *&  node,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect() [7/7]

void exprtk::details::node_depth_base< expression_node< T > >::collect ( expression_node< T > *const &  node,
const bool  deletable,
NodeSequence &  delete_node_list 
) const
inlineinherited

◆ collect_nodes()

virtual void exprtk::details::node_collector_interface< expression_node< T > >::collect_nodes ( noderef_list_t )
inlinevirtualinherited

◆ compute_node_depth() [1/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const BranchType &  n0,
const BranchType &  n1 
) const
inlineinherited

◆ compute_node_depth() [2/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const BranchType &  n0,
const BranchType &  n1,
const BranchType &  n2 
) const
inlineinherited

◆ compute_node_depth() [3/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const BranchType &  n0,
const BranchType &  n1,
const BranchType &  n2,
const BranchType &  n3 
) const
inlineinherited

◆ compute_node_depth() [4/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const expression_node< T > *const &  node) const
inlineinherited

◆ compute_node_depth() [5/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const Sequence< expression_node< T > *, Allocator > &  branch_list) const
inlineinherited

◆ compute_node_depth() [6/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const Sequence< std::pair< expression_node< T > *, bool >, Allocator > &  branch_list) const
inlineinherited

◆ compute_node_depth() [7/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const std::pair< expression_node< T > *, bool > &  branch) const
inlineinherited

◆ compute_node_depth() [8/8]

std::size_t exprtk::details::node_depth_base< expression_node< T > >::compute_node_depth ( const std::pair< expression_node< T > *, bool >(&)  branch[N]) const
inlineinherited

◆ f0()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
bfunc_t exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::f0 ( ) const
inline

◆ f1()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
bfunc_t exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::f1 ( ) const
inline

◆ f2()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
bfunc_t exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::f2 ( ) const
inline

◆ id()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
static std::string exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::id ( )
inlinestatic

◆ node_depth()

virtual std::size_t exprtk::details::node_depth_base< expression_node< T > >::node_depth ( ) const
inlinevirtualinherited

Reimplemented in exprtk::details::null_eq_node< T >, exprtk::details::unary_node< T >, exprtk::details::binary_node< T >, exprtk::details::binary_ext_node< T, Operation >, exprtk::details::trinary_node< T >, exprtk::details::quaternary_node< T >, exprtk::details::conditional_node< T >, exprtk::details::cons_conditional_node< T >, exprtk::details::break_node< T >, exprtk::details::while_loop_node< T >, exprtk::details::repeat_until_loop_node< T >, exprtk::details::for_loop_node< T >, exprtk::details::while_loop_bc_node< T >, exprtk::details::repeat_until_loop_bc_node< T >, exprtk::details::for_loop_bc_node< T >, exprtk::details::switch_node< T >, exprtk::details::multi_switch_node< T >, exprtk::details::vector_elem_node< T >, exprtk::details::rebasevector_elem_node< T >, exprtk::details::vector_assignment_node< T >, exprtk::details::generic_string_range_node< T >, exprtk::details::string_size_node< T >, exprtk::details::str_vararg_node< T, VarArgFunction >, exprtk::details::vararg_node< T, VarArgFunction >, exprtk::details::vectorize_node< T, VecFunction >, exprtk::details::function_N_node< T, IFunction, N >, exprtk::details::vararg_function_node< T, VarArgFunction >, exprtk::details::generic_function_node< T, GenericFunction >, exprtk::details::generic_function_node< T, null_igenfunc< T > >, exprtk::details::generic_function_node< T, StringFunction >, exprtk::details::return_envelope_node< T >, exprtk::details::unary_branch_node< T, Operation >, exprtk::details::vob_node< T, Operation >, exprtk::details::bov_node< T, Operation >, exprtk::details::cob_node< T, Operation >, exprtk::details::boc_node< T, Operation >, exprtk::details::bipow_node< T, PowOp >, and exprtk::details::bipowninv_node< T, PowOp >.

◆ t0()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
T0 exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::t0 ( ) const
inline

◆ t1()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
T1 exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::t1 ( ) const
inline

◆ t2()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
T2 exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::t2 ( ) const
inline

◆ t3()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
T3 exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::t3 ( ) const
inline

◆ type()

template<typename T >
virtual node_type exprtk::details::expression_node< T >::type ( ) const
inlinevirtualinherited

Reimplemented in exprtk::details::null_node< T >, exprtk::details::null_eq_node< T >, exprtk::details::literal_node< T >, exprtk::details::string_literal_node< T >, exprtk::details::unary_node< T >, exprtk::details::binary_node< T >, exprtk::details::binary_ext_node< T, Operation >, exprtk::details::trinary_node< T >, exprtk::details::quaternary_node< T >, exprtk::details::conditional_node< T >, exprtk::details::cons_conditional_node< T >, exprtk::details::break_node< T >, exprtk::details::continue_node< T >, exprtk::details::while_loop_node< T >, exprtk::details::repeat_until_loop_node< T >, exprtk::details::for_loop_node< T >, exprtk::details::while_loop_bc_node< T >, exprtk::details::repeat_until_loop_bc_node< T >, exprtk::details::for_loop_bc_node< T >, exprtk::details::switch_node< T >, exprtk::details::multi_switch_node< T >, exprtk::details::variable_node< T >, exprtk::details::vector_node< T >, exprtk::details::vector_elem_node< T >, exprtk::details::rebasevector_elem_node< T >, exprtk::details::rebasevector_celem_node< T >, exprtk::details::vector_assignment_node< T >, exprtk::details::swap_node< T >, exprtk::details::swap_generic_node< T >, exprtk::details::swap_vecvec_node< T >, exprtk::details::stringvar_node< T >, exprtk::details::string_range_node< T >, exprtk::details::const_string_range_node< T >, exprtk::details::generic_string_range_node< T >, exprtk::details::string_concat_node< T >, exprtk::details::swap_string_node< T >, exprtk::details::swap_genstrings_node< T >, exprtk::details::stringvar_size_node< T >, exprtk::details::string_size_node< T >, exprtk::details::assignment_string_node< T, AssignmentProcess >, exprtk::details::assignment_string_range_node< T, AssignmentProcess >, exprtk::details::conditional_string_node< T >, exprtk::details::cons_conditional_str_node< T >, exprtk::details::str_vararg_node< T, VarArgFunction >, exprtk::details::sf3_var_node< T, SpecialFunction >, exprtk::details::sf4_var_node< T, SpecialFunction >, exprtk::details::vararg_node< T, VarArgFunction >, exprtk::details::vararg_varnode< T, VarArgFunction >, exprtk::details::vectorize_node< T, VecFunction >, exprtk::details::assignment_vec_node< T >, exprtk::details::assignment_vecvec_node< T >, exprtk::details::assignment_vec_op_node< T, Operation >, exprtk::details::assignment_vecvec_op_node< T, Operation >, exprtk::details::vec_binop_vecvec_node< T, Operation >, exprtk::details::vec_binop_vecval_node< T, Operation >, exprtk::details::vec_binop_valvec_node< T, Operation >, exprtk::details::unary_vector_node< T, Operation >, exprtk::details::function_N_node< T, IFunction, N >, exprtk::details::function_N_node< T, IFunction, 0 >, exprtk::details::vararg_function_node< T, VarArgFunction >, exprtk::details::generic_function_node< T, GenericFunction >, exprtk::details::generic_function_node< T, null_igenfunc< T > >, exprtk::details::generic_function_node< T, StringFunction >, exprtk::details::string_function_node< T, StringFunction >, exprtk::details::multimode_genfunction_node< T, GenericFunction >, exprtk::details::multimode_strfunction_node< T, StringFunction >, exprtk::details::return_node< T >, exprtk::details::return_envelope_node< T >, exprtk::details::unary_variable_node< T, Operation >, exprtk::details::uvouv_node< T >, exprtk::details::unary_branch_node< T, Operation >, exprtk::details::T0oT1< T, T0, T1 >, exprtk::details::T0oT1oT2< T, T0, T1, T2, ProcessMode >, exprtk::details::T0oT1oT2_sf3< T, T0, T1, T2 >, exprtk::details::T0oT1oT2_sf3ext< T, T0, T1, T2, SF3Operation >, exprtk::details::T0oT1oT2oT3_sf4< T, T0, T1, T2, T3 >, exprtk::details::T0oT1oT2oT3_sf4ext< T, T0, T1, T2, T3, SF4Operation >, exprtk::details::vov_node< T, Operation >, exprtk::details::cov_node< T, Operation >, exprtk::details::sos_node< T, SType0, SType1, Operation >, exprtk::details::str_xrox_node< T, SType0, SType1, RangePack, Operation >, exprtk::details::str_xoxr_node< T, SType0, SType1, RangePack, Operation >, exprtk::details::str_xroxr_node< T, SType0, SType1, RangePack, Operation >, exprtk::details::str_sogens_node< T, Operation >, exprtk::details::sosos_node< T, SType0, SType1, SType2, Operation >, exprtk::details::ipow_node< T, PowOp >, exprtk::details::bipow_node< T, PowOp >, exprtk::details::ipowinv_node< T, PowOp >, and exprtk::details::bipowninv_node< T, PowOp >.

References exprtk::details::expression_node< T >::e_none.

Referenced by exprtk::details::is_binary_node(), exprtk::details::is_break_node(), exprtk::details::is_const_string_node(), exprtk::details::is_const_string_range_node(), exprtk::details::is_constant_node(), exprtk::details::is_continue_node(), exprtk::details::is_function(), exprtk::details::is_generally_string_node(), exprtk::details::is_genricstring_range_node(), exprtk::details::is_ivariable_node(), exprtk::details::is_ivector_node(), exprtk::details::is_neg_unary_node(), exprtk::details::is_null_node(), exprtk::details::is_rebasevector_celem_node(), exprtk::details::is_rebasevector_elem_node(), exprtk::details::is_return_node(), exprtk::details::is_sf3ext_node(), exprtk::details::is_sf4ext_node(), exprtk::details::is_string_assignment_node(), exprtk::details::is_string_ccondition_node(), exprtk::details::is_string_concat_node(), exprtk::details::is_string_condition_node(), exprtk::details::is_string_function_node(), exprtk::details::is_string_node(), exprtk::details::is_string_range_node(), exprtk::details::is_string_vararg_node(), exprtk::details::is_swap_node(), exprtk::details::is_unary_node(), exprtk::details::is_variable_node(), exprtk::details::is_vector_elem_node(), and exprtk::details::is_vector_node().

◆ type_id()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
std::string exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::type_id ( ) const
inlinevirtual

◆ value()

template<typename T , typename T0_ , typename T1_ , typename T2_ , typename T3_ , typename ProcessMode >
T exprtk::details::T0oT1oT2oT3< T, T0_, T1_, T2_, T3_, ProcessMode >::value ( ) const
inlinevirtual

Member Data Documentation

◆ depth

std::size_t exprtk::details::node_depth_base< expression_node< T > >::depth
mutableinherited

◆ depth_set

bool exprtk::details::node_depth_base< expression_node< T > >::depth_set
mutableinherited

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