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 5982 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 5984 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 5983 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 6002 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 5985 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 5984 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 6003 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 5987 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 5986 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 6005 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 5989 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 5988 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 6007 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 5988 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 5987 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 6006 of file exprtk_test.cpp.

Constructor & Destructor Documentation

◆ gen_func() [1/3]

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

Definition at line 5993 of file exprtk_mpfr_test.cpp.

5994 : scalar_count(0)
5995 , vector_count(0)
5996 , string_count(0)
5997 {}
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 5992 of file exprtk_real_test.cpp.

5993 : scalar_count(0)
5994 , vector_count(0)
5995 , string_count(0)
5996 {}

◆ gen_func() [3/3]

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

Definition at line 6011 of file exprtk_test.cpp.

6012 : scalar_count(0)
6013 , vector_count(0)
6014 , string_count(0)
6015 {}

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 5999 of file exprtk_mpfr_test.cpp.

6000 {
6001 for (std::size_t i = 0; i < params.size(); ++i)
6002 {
6003 generic_type& gt = params[i];
6004
6005 switch (gt.type)
6006 {
6008 break;
6009
6011 break;
6012
6013 case generic_type::e_string : {
6014 if (
6015 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6016 ("abc123" != exprtk::to_str(string_t(gt)))
6017 )
6018 {
6019 return std::numeric_limits<T>::quiet_NaN();
6020 }
6021 else
6022 string_count++;
6023 }
6024 break;
6025
6026 default : return std::numeric_limits<T>::quiet_NaN();
6027 }
6028 }
6029
6030 return T(0);
6031 }
std::string to_str(const StringView &view)
Definition exprtk.hpp:4795
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, exprtk::type_store< T >::parameter_list::size(), 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 5998 of file exprtk_real_test.cpp.

5999 {
6000 for (std::size_t i = 0; i < params.size(); ++i)
6001 {
6002 generic_type& gt = params[i];
6003
6004 switch (gt.type)
6005 {
6007 break;
6008
6010 break;
6011
6012 case generic_type::e_string : {
6013 if (
6014 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6015 ("abc123" != exprtk::to_str(string_t(gt)))
6016 )
6017 {
6018 return std::numeric_limits<T>::quiet_NaN();
6019 }
6020 else
6021 string_count++;
6022 }
6023 break;
6024
6025 default : return std::numeric_limits<T>::quiet_NaN();
6026 }
6027 }
6028
6029 return T(0);
6030 }

References exprtk::type_store< T >::e_scalar, exprtk::type_store< T >::e_string, exprtk::type_store< T >::e_vector, gen_func< T >::scalar_count, exprtk::type_store< T >::parameter_list::size(), 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 6017 of file exprtk_test.cpp.

6018 {
6019 for (std::size_t i = 0; i < params.size(); ++i)
6020 {
6021 generic_type& gt = params[i];
6022
6023 switch (gt.type)
6024 {
6026 break;
6027
6029 break;
6030
6031 case generic_type::e_string : {
6032 if (
6033 ("CdEf" != exprtk::to_str(string_t(gt))) &&
6034 ("abc123" != exprtk::to_str(string_t(gt)))
6035 )
6036 {
6037 return std::numeric_limits<T>::quiet_NaN();
6038 }
6039 else
6040 string_count++;
6041 }
6042 break;
6043
6044 default : return std::numeric_limits<T>::quiet_NaN();
6045 }
6046 }
6047
6048 return T(0);
6049 }

References exprtk::type_store< T >::e_scalar, exprtk::type_store< T >::e_string, exprtk::type_store< T >::e_vector, gen_func< T >::scalar_count, exprtk::type_store< T >::parameter_list::size(), 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 6033 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 6035 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 6034 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: