C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
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_t > 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)
T operator() (parameter_list_t parameters) override
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::igeneric_function< T >
 igeneric_function (const std::string &param_seq="", const return_type rtr_type=e_rtrn_scalar)
virtual ~igeneric_function ()
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_t & symbol_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")
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(), file_package, exprtk::function_traits::has_side_effects(), io_package, package_map_, symbol_table_, and vector_package.

Here is the call graph for this function:

Member Function Documentation

◆ operator()() [1/4]

template<typename T>
virtual T exprtk::igeneric_function< T >::operator() ( const std::size_t & ,
parameter_list_t  )
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 20009 of file exprtk.hpp.

◆ operator()() [2/4]

template<typename T>
virtual T exprtk::igeneric_function< T >::operator() ( const std::size_t & ,
std::string & ,
parameter_list_t  )
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 20013 of file exprtk.hpp.

◆ operator()() [3/4]

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

References package_map_, symbol_table_, and exprtk::to_str().

Here is the call graph for this function:

◆ operator()() [4/4]

template<typename T>
virtual T exprtk::igeneric_function< T >::operator() ( std::string & ,
parameter_list_t  )
inlinevirtual

Reimplemented from exprtk::igeneric_function< T >.

Definition at line 20005 of file exprtk.hpp.

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().

◆ 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().

◆ package_map_

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

Definition at line 79 of file exprtk_import_packages.cpp.

Referenced by import_packages(), and operator()().

◆ 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(), and 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().


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