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

Public Types

typedef exprtk::igeneric_function< T > igfun_t
 
typedef igfun_t::parameter_list_t parameter_list_t
 
typedef igfun_t::generic_type generic_type
 
typedef generic_type::scalar_view scalar_t
 
typedef generic_type::string_view string_t
 
typedef exprtk::symbol_table< T > symbol_table_t
 
typedef std::map< std::string, std::function< bool(symbol_table_t &symbol_table)> > package_map_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

 import_packages (symbol_table_t &symbol_table)
 
operator() (parameter_list_t parameters)
 
- 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 ()
 

Private Attributes

symbol_table_tsymbol_table_
 
package_map_t package_map_
 
exprtk::rtl::io::package< T > io_package
 
exprtk::rtl::io::file::package< T > file_package
 
exprtk::rtl::vecops::package< T > vector_package
 

Additional Inherited Members

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

Detailed Description

template<typename T>
class import_packages< T >

Definition at line 28 of file exprtk_import_packages.cpp.

Member Typedef Documentation

◆ generic_type

template<typename T >
typedef igfun_t::generic_type import_packages< T >::generic_type

Definition at line 34 of file exprtk_import_packages.cpp.

◆ igfun_t

template<typename T >
typedef exprtk::igeneric_function<T> import_packages< T >::igfun_t

Definition at line 32 of file exprtk_import_packages.cpp.

◆ package_map_t

template<typename T >
typedef std::map<std::string,std::function<bool(symbol_table_t& symbol_table)> > import_packages< T >::package_map_t

Definition at line 38 of file exprtk_import_packages.cpp.

◆ parameter_list_t

template<typename T >
typedef igfun_t::parameter_list_t import_packages< T >::parameter_list_t

Definition at line 33 of file exprtk_import_packages.cpp.

◆ scalar_t

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

Definition at line 35 of file exprtk_import_packages.cpp.

◆ string_t

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

Definition at line 36 of file exprtk_import_packages.cpp.

◆ symbol_table_t

template<typename T >
typedef exprtk::symbol_table<T> import_packages< T >::symbol_table_t

Definition at line 37 of file exprtk_import_packages.cpp.

Constructor & Destructor Documentation

◆ import_packages()

template<typename T >
import_packages< T >::import_packages ( symbol_table_t symbol_table)
inline

Definition at line 42 of file exprtk_import_packages.cpp.

43 : igfun_t("S")
44 , symbol_table_(symbol_table)
45 {
47
48 package_map_.emplace("exprtk.rtl.io" ,
49 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(io_package ); });
50
51 package_map_.emplace("exprtk.rtl.io.file",
52 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(file_package ); });
53
54 package_map_.emplace("exprtk.rtl.vecops" ,
55 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(vector_package); });
56 }
symbol_table_t & symbol_table_
exprtk::rtl::io::file::package< T > file_package
exprtk::igeneric_function< T > igfun_t
exprtk::rtl::vecops::package< T > vector_package
exprtk::symbol_table< T > symbol_table_t
exprtk::rtl::io::package< T > io_package

References exprtk::symbol_table< T >::add_package(), import_packages< T >::file_package, exprtk::function_traits::has_side_effects(), import_packages< T >::io_package, import_packages< T >::package_map_, and import_packages< T >::vector_package.

Here is the call graph for this function:

Member Function Documentation

◆ operator()()

template<typename T >
T import_packages< T >::operator() ( parameter_list_t  parameters)
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 58 of file exprtk_import_packages.cpp.

59 {
60 string_t package(parameters[0]);
61
62 typename package_map_t::iterator itr = package_map_.find(exprtk::to_str(package));
63
64 if (package_map_.end() == itr)
65 {
66 return T(0);
67 }
68
69 return itr->second(symbol_table_) ? T(1) : T(0);
70 }
generic_type::string_view string_t
std::string to_str(const StringView &view)
Definition exprtk.hpp:4869

References import_packages< T >::package_map_, import_packages< T >::symbol_table_, and exprtk::to_str().

Here is the call graph for this function:

Member Data Documentation

◆ file_package

template<typename T >
exprtk::rtl::io::file::package<T> import_packages< T >::file_package
private

Definition at line 77 of file exprtk_import_packages.cpp.

Referenced by import_packages< T >::import_packages().

◆ io_package

template<typename T >
exprtk::rtl::io::package<T> import_packages< T >::io_package
private

Definition at line 76 of file exprtk_import_packages.cpp.

Referenced by import_packages< T >::import_packages().

◆ package_map_

template<typename T >
package_map_t import_packages< T >::package_map_
private

◆ symbol_table_

template<typename T >
symbol_table_t& import_packages< T >::symbol_table_
private

Definition at line 74 of file exprtk_import_packages.cpp.

Referenced by import_packages< T >::operator()().

◆ vector_package

template<typename T >
exprtk::rtl::vecops::package<T> import_packages< T >::vector_package
private

Definition at line 78 of file exprtk_import_packages.cpp.

Referenced by import_packages< T >::import_packages().


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