C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
gen_func< T > Struct Template Reference
Inheritance diagram for gen_func< T >:
[legend]
Collaboration diagram for gen_func< T >:
[legend]

Public Types

typedef exprtk::igeneric_function< T >::generic_type generic_type
 
typedef exprtk::igeneric_function< T >::parameter_list_t parameter_list_t
 
typedef generic_type::scalar_view scalar_t
 
typedef generic_type::vector_view vector_t
 
typedef generic_type::string_view string_t
 
typedef exprtk::igeneric_function< T >::generic_type generic_type
 
typedef exprtk::igeneric_function< T >::parameter_list_t parameter_list_t
 
typedef generic_type::scalar_view scalar_t
 
typedef generic_type::vector_view vector_t
 
typedef generic_type::string_view string_t
 
typedef exprtk::igeneric_function< T >::generic_type generic_type
 
typedef exprtk::igeneric_function< T >::parameter_list_t parameter_list_t
 
typedef generic_type::scalar_view scalar_t
 
typedef generic_type::vector_view vector_t
 
typedef generic_type::string_view string_t
 
- Public Types inherited from exprtk::igeneric_function< T >
enum  return_type { e_rtrn_scalar = 0 , e_rtrn_string = 1 , e_rtrn_overload = 2 }
 
typedef T type
 
typedef type_store< T > generic_type
 
typedef generic_type::parameter_list parameter_list_t
 

Public Member Functions

 gen_func ()
 
operator() (parameter_list_t params)
 
 gen_func ()
 
operator() (parameter_list_t params)
 
 gen_func ()
 
operator() (parameter_list_t params)
 
- Public Member Functions inherited from exprtk::igeneric_function< T >
 igeneric_function (const std::string &param_seq="", const return_type rtr_type=e_rtrn_scalar)
 
virtual ~igeneric_function ()
 
virtual T operator() (std::string &, parameter_list_t)
 
virtual T operator() (const std::size_t &, parameter_list_t)
 
virtual T operator() (const std::size_t &, std::string &, parameter_list_t)
 
- Public Member Functions inherited from exprtk::function_traits
 function_traits ()
 
bool & allow_zero_parameters ()
 
bool & has_side_effects ()
 
std::size_t & min_num_args ()
 
std::size_t & max_num_args ()
 

Public Attributes

std::size_t scalar_count
 
std::size_t vector_count
 
std::size_t string_count
 
- Public Attributes inherited from exprtk::igeneric_function< T >
std::string parameter_sequence
 
return_type rtrn_type
 

Detailed Description

template<typename T>
struct gen_func< T >

Definition at line 6100 of file exprtk_mpfr_test.cpp.

Member Typedef Documentation

◆ generic_type [1/3]

template<typename T >
typedef exprtk::igeneric_function<T>::generic_type gen_func< T >::generic_type

Definition at line 6102 of file exprtk_mpfr_test.cpp.

◆ generic_type [2/3]

template<typename T >
typedef exprtk::igeneric_function<T>::generic_type gen_func< T >::generic_type

Definition at line 6099 of file exprtk_real_test.cpp.

◆ generic_type [3/3]

template<typename T >
typedef exprtk::igeneric_function<T>::generic_type gen_func< T >::generic_type

Definition at line 6127 of file exprtk_test.cpp.

◆ parameter_list_t [1/3]

template<typename T >
typedef exprtk::igeneric_function<T>::parameter_list_t gen_func< T >::parameter_list_t

Definition at line 6103 of file exprtk_mpfr_test.cpp.

◆ parameter_list_t [2/3]

template<typename T >
typedef exprtk::igeneric_function<T>::parameter_list_t gen_func< T >::parameter_list_t

Definition at line 6100 of file exprtk_real_test.cpp.

◆ parameter_list_t [3/3]

template<typename T >
typedef exprtk::igeneric_function<T>::parameter_list_t gen_func< T >::parameter_list_t

Definition at line 6128 of file exprtk_test.cpp.

◆ scalar_t [1/3]

template<typename T >
typedef generic_type::scalar_view gen_func< T >::scalar_t

Definition at line 6105 of file exprtk_mpfr_test.cpp.

◆ scalar_t [2/3]

template<typename T >
typedef generic_type::scalar_view gen_func< T >::scalar_t

Definition at line 6102 of file exprtk_real_test.cpp.

◆ scalar_t [3/3]

template<typename T >
typedef generic_type::scalar_view gen_func< T >::scalar_t

Definition at line 6130 of file exprtk_test.cpp.

◆ string_t [1/3]

template<typename T >
typedef generic_type::string_view gen_func< T >::string_t

Definition at line 6107 of file exprtk_mpfr_test.cpp.

◆ string_t [2/3]

template<typename T >
typedef generic_type::string_view gen_func< T >::string_t

Definition at line 6104 of file exprtk_real_test.cpp.

◆ string_t [3/3]

template<typename T >
typedef generic_type::string_view gen_func< T >::string_t

Definition at line 6132 of file exprtk_test.cpp.

◆ vector_t [1/3]

template<typename T >
typedef generic_type::vector_view gen_func< T >::vector_t

Definition at line 6106 of file exprtk_mpfr_test.cpp.

◆ vector_t [2/3]

template<typename T >
typedef generic_type::vector_view gen_func< T >::vector_t

Definition at line 6103 of file exprtk_real_test.cpp.

◆ vector_t [3/3]

template<typename T >
typedef generic_type::vector_view gen_func< T >::vector_t

Definition at line 6131 of file exprtk_test.cpp.

Constructor & Destructor Documentation

◆ gen_func() [1/3]

template<typename T >
gen_func< T >::gen_func ( )
inline

Definition at line 6111 of file exprtk_mpfr_test.cpp.

6112 : scalar_count(0)
6113 , vector_count(0)
6114 , string_count(0)
6115 {}
std::size_t vector_count
std::size_t string_count
std::size_t scalar_count

◆ gen_func() [2/3]

template<typename T >
gen_func< T >::gen_func ( )
inline

Definition at line 6108 of file exprtk_real_test.cpp.

6109 : scalar_count(0)
6110 , vector_count(0)
6111 , string_count(0)
6112 {}

◆ gen_func() [3/3]

template<typename T >
gen_func< T >::gen_func ( )
inline

Definition at line 6136 of file exprtk_test.cpp.

6137 : scalar_count(0)
6138 , vector_count(0)
6139 , string_count(0)
6140 {}

Member Function Documentation

◆ operator()() [1/3]

template<typename T >
T gen_func< T >::operator() ( parameter_list_t  params)
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 6117 of file exprtk_mpfr_test.cpp.

6118 {
6119 for (std::size_t i = 0; i < params.size(); ++i)
6120 {
6121 generic_type& gt = params[i];
6122
6123 switch (gt.type)
6124 {
6126 break;
6127
6129 break;
6130
6131 case generic_type::e_string : {
6132 if (
6133 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6134 ("abc123" != exprtk::to_str(string_t(gt)))
6135 )
6136 {
6137 return std::numeric_limits<T>::quiet_NaN();
6138 }
6139 else
6140 string_count++;
6141 }
6142 break;
6143
6144 default : return std::numeric_limits<T>::quiet_NaN();
6145 }
6146 }
6147
6148 return T(0);
6149 }
std::string to_str(const StringView &view)
Definition exprtk.hpp:4869
generic_type::string_view string_t
exprtk::igeneric_function< T >::generic_type generic_type

References exprtk::type_store< T >::e_scalar, exprtk::type_store< T >::e_string, exprtk::type_store< T >::e_vector, gen_func< T >::scalar_count, gen_func< T >::string_count, exprtk::to_str(), exprtk::type_store< T >::type, and gen_func< T >::vector_count.

Here is the call graph for this function:

◆ operator()() [2/3]

template<typename T >
T gen_func< T >::operator() ( parameter_list_t  params)
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 6114 of file exprtk_real_test.cpp.

6115 {
6116 for (std::size_t i = 0; i < params.size(); ++i)
6117 {
6118 generic_type& gt = params[i];
6119
6120 switch (gt.type)
6121 {
6123 break;
6124
6126 break;
6127
6128 case generic_type::e_string : {
6129 if (
6130 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6131 ("abc123" != exprtk::to_str(string_t(gt)))
6132 )
6133 {
6134 return std::numeric_limits<T>::quiet_NaN();
6135 }
6136 else
6137 string_count++;
6138 }
6139 break;
6140
6141 default : return std::numeric_limits<T>::quiet_NaN();
6142 }
6143 }
6144
6145 return T(0);
6146 }

References exprtk::type_store< T >::e_scalar, exprtk::type_store< T >::e_string, exprtk::type_store< T >::e_vector, gen_func< T >::scalar_count, gen_func< T >::string_count, exprtk::to_str(), exprtk::type_store< T >::type, and gen_func< T >::vector_count.

Here is the call graph for this function:

◆ operator()() [3/3]

template<typename T >
T gen_func< T >::operator() ( parameter_list_t  params)
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 6142 of file exprtk_test.cpp.

6143 {
6144 for (std::size_t i = 0; i < params.size(); ++i)
6145 {
6146 generic_type& gt = params[i];
6147
6148 switch (gt.type)
6149 {
6151 break;
6152
6154 break;
6155
6156 case generic_type::e_string : {
6157 if (
6158 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6159 ("abc123" != exprtk::to_str(string_t(gt)))
6160 )
6161 {
6162 return std::numeric_limits<T>::quiet_NaN();
6163 }
6164 else
6165 string_count++;
6166 }
6167 break;
6168
6169 default : return std::numeric_limits<T>::quiet_NaN();
6170 }
6171 }
6172
6173 return T(0);
6174 }

References exprtk::type_store< T >::e_scalar, exprtk::type_store< T >::e_string, exprtk::type_store< T >::e_vector, gen_func< T >::scalar_count, gen_func< T >::string_count, exprtk::to_str(), exprtk::type_store< T >::type, and gen_func< T >::vector_count.

Here is the call graph for this function:

Member Data Documentation

◆ scalar_count

template<typename T >
std::size_t gen_func< T >::scalar_count

Definition at line 6151 of file exprtk_mpfr_test.cpp.

Referenced by gen_func< T >::operator()(), and run_test18().

◆ string_count

template<typename T >
std::size_t gen_func< T >::string_count

Definition at line 6153 of file exprtk_mpfr_test.cpp.

Referenced by gen_func< T >::operator()(), and run_test18().

◆ vector_count

template<typename T >
std::size_t gen_func< T >::vector_count

Definition at line 6152 of file exprtk_mpfr_test.cpp.

Referenced by gen_func< T >::operator()(), and run_test18().


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