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::function< bool(symbol_table_t &)> import_func_t
 
typedef std::map< std::string, import_func_tpackage_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) override
 
- 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

- Static Public Member Functions inherited from exprtk::igeneric_function< T >
static std::string generate_prefix_args (const std::string &prefix_args, std::size_t start=0, std::size_t end=10)
 
static std::string generate_suffix_args (const std::string &suffix_args, std::size_t start=0, std::size_t end=10)
 
- 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.

◆ import_func_t

template<typename T >
typedef std::function<bool(symbol_table_t&)> import_packages< T >::import_func_t

Definition at line 38 of file exprtk_import_packages.cpp.

◆ package_map_t

template<typename T >
typedef std::map<std::string,import_func_t> import_packages< T >::package_map_t

Definition at line 39 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 43 of file exprtk_import_packages.cpp.

44 : igfun_t("S")
45 , symbol_table_(symbol_table)
46 {
48
49 package_map_.emplace(
50 "exprtk.rtl.io" ,
51 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(io_package); });
52
53 package_map_.emplace(
54 "exprtk.rtl.io.file",
55 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(file_package); });
56
57 package_map_.emplace(
58 "exprtk.rtl.vecops" ,
59 [&](symbol_table_t& symbtab) -> bool { return symbtab.add_package(vector_package); });
60 }
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)
inlineoverridevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 62 of file exprtk_import_packages.cpp.

63 {
64 const string_t package(parameters[0]);
65
66 const auto itr = package_map_.find(exprtk::to_str(package));
67
68 if (package_map_.end() == itr)
69 {
70 return T(0);
71 }
72
73 return itr->second(symbol_table_) ? T(1) : T(0);
74 }
generic_type::string_view string_t
std::string to_str(const StringView &view)
Definition exprtk.hpp:4996

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 81 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 80 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 78 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 82 of file exprtk_import_packages.cpp.

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


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