Classes | |
struct | eval_closure_str |
struct | eval_closure_str_char |
struct | eval_closure_str2 |
struct | eval_closure_val |
struct | eval_closure_exp |
struct | eval_closure_args |
struct | push_back_ |
struct | declare_global_ |
struct | lookup_global_ |
struct | call_function_ |
struct | call_method_ |
struct | call_operator_ |
struct | wrap_literal_ |
struct | wrap_string_literal_ |
struct | eval_p |
struct | space_comment_p |
struct | type_info_ptr_compare |
class | object_method_store |
Stores methods (static and non-static) for an object. More... | |
class | type_info_conversion_store |
class | val_cast_ptr_or_ref |
class | val_cast_ptr_or_ref< T * > |
class | val_cast_ptr_or_ref< T & > |
class | arg_info_generator |
class | arg_info_generator< T * > |
class | arg_info_generator< T & > |
class | fwrap_store_base |
class | func_store |
primary template specialisation More... | |
class | ctor_store |
primary template specialisation More... | |
class | func_store< RvT(*)(BOOST_PP_ENUM_PARAMS(n, T))> |
class | func_store< void(*)(BOOST_PP_ENUM_PARAMS(n, T))> |
class | func_store< RvT(ObjT::*)(BOOST_PP_ENUM_PARAMS(n, T))> |
class | func_store< RvT(ObjT::*)(BOOST_PP_ENUM_PARAMS(n, T)) const > |
class | func_store< void(ObjT::*)(BOOST_PP_ENUM_PARAMS(n, T))> |
class | func_store< void(ObjT::*)(BOOST_PP_ENUM_PARAMS(n, T)) const > |
class | ctor_store< ObjT, void(*)(BOOST_PP_ENUM_PARAMS(n, T))> |
class | storage_base_common |
class | storage_base_nonconst |
class | storage_unmanaged_ptr |
class | storage_unmanaged_ptr_nonconst |
class | storage_transfer_ownership |
class | storage_transfer_ownership_nonconst |
class | storage_transfer_ownership_array |
class | storage_transfer_ownership_array_nonconst |
class | storage_copy_value |
class | storage_copy_value_nonconst |
class | val |
A generic class for wrapping any type of object/primitive. More... | |
Namespaces | |
namespace | EVAL_EXECUTION_CONTEXT_NAME |
namespace | overload_backups |
Enumerations | |
enum | conversion_rank { CONVERSION_EXACT_MATCH = 300, CONVERSION_QUALIFICATION = 200, CONVERSION_OTHER_CONVERSION = 100, CONVERSION_IMPOSSIBLE = -1 } |
We need to rank conversions for overload resolution. More... | |
Functions | |
std::string | remove_spaces (const char *str) |
const boost::spirit::distinct_parser | keyword_p ("a-zA-Z0-9_") |
template<typename Iterator1, typename Iterator2> | |
bool | strictly_greater_or_equal_all (Iterator1 begin1, Iterator1 end1, Iterator2 begin2) |
template<typename T> | |
val | create_val (T &x, const boost::true_type &) |
x was a reference originally | |
template<typename T> | |
val | create_val (T &x, const boost::false_type &) |
x was not a reference originally | |
template<typename T> | |
val | create_val (T *x, const boost::false_type &) |
template<typename FromT, typename ToT> | |
ToT | convert_numeric_helper (const FromT *x, const boost::true_type &) |
template<typename FromT, typename ToT> | |
ToT | convert_numeric_helper (const FromT *x, const boost::false_type &) |
template<typename FromT, typename ToT> | |
ToT | convert_numeric (const FromT *x, const boost::true_type &) |
template<typename FromT, typename ToT> | |
ToT | convert_numeric (const FromT *, const boost::false_type &) |
template<typename FromT> | |
std::string | stringify (const FromT &val) |
template<typename FromT> | |
std::string | convert_lexical_non_c_str (const FromT *val) |
template<typename FromT> | |
std::string | convert_lexical (const FromT *val) |
template<> | |
std::string | convert_lexical< char > (const char *val) |
Specialisation to convert const char * to string. | |
template<typename DesiredT> | |
void | ensure_val_types_match (const val &v) |
template<typename DesiredT> | |
DesiredT * | val_cast_ptr_helper (const val &v, const boost::true_type &) |
ValT will be a const type (indicated by 2nd argument). | |
template<typename DesiredT> | |
DesiredT * | val_cast_ptr_helper (const val &v, const boost::false_type &) |
ValT will not be a const type (indicated by 2nd argument). | |
Variables | |
phoenix::function< push_back_ > const | push_back = push_back_() |
const phoenix::function < declare_global_ > | declare_global = declare_global_() |
const phoenix::function < lookup_global_ > | lookup_global = lookup_global_() |
const phoenix::function < call_function_ > | call_function = call_function_() |
const phoenix::function < call_method_ > | call_method = call_method_() |
const phoenix::function < call_operator_ > | call_operator = call_operator_() |
const phoenix::function < wrap_literal_ > | wrap_literal = wrap_literal_() |
const phoenix::function < wrap_string_literal_ > | wrap_string_literal = wrap_string_literal_() |
std::string eval::detail::convert_lexical | ( | const FromT * | val | ) | [inline] |
Attempt to convert *val
to a string.
non_streamable_exception | if an appropriate operator<< does not exist. |
std::string eval::detail::convert_lexical< char > | ( | const char * | val | ) | [inline] |
Specialisation to convert const char * to string.
std::string eval::detail::convert_lexical_non_c_str | ( | const FromT * | val | ) | [inline] |
Attempt to convert *val
to a string.
non_streamable_exception | if an appropriate operator<< does not exist. |
ToT eval::detail::convert_numeric | ( | const FromT * | , | |
const boost::false_type & | ||||
) | [inline] |
Overload chosen when FromT is non-numeric. This simply throws an eval::non_numeric_exception.
x
is numeric (int, double, ...). ToT eval::detail::convert_numeric | ( | const FromT * | x, | |
const boost::true_type & | ||||
) | [inline] |
Attempt a numeric conversion of x
to ToT
, checking for overflow.
x
is a numeric type; this overload will only be chosen if it is. x
not NULL.
Second argument indicates whether x
is numeric (int, double, ...).
ToT
is numeric.
overflow_exception | x doesn't fit into ToT |
ToT eval::detail::convert_numeric_helper | ( | const FromT * | x, | |
const boost::false_type & | ||||
) | [inline] |
Convert x
to the floating point type ToT, checking for overflow.
ToT
is an integral type; this overload will only be chosen if it is not. x
is numeric (i.e. int, double, ....).
Second
argument indicates whether ToT
is integral.
overflow_exception | x doesn't fit into ToT |
ToT eval::detail::convert_numeric_helper | ( | const FromT * | x, | |
const boost::true_type & | ||||
) | [inline] |
Convert x
to the integral type ToT, checking for overflow.
ToT
is an integral type; this overload will only be chosen if it is. x
is numeric (i.e. int, double, ....).
Second
argument indicates whether ToT
is integral.
overflow_exception | x doesn't fit into ToT |
val eval::detail::create_val | ( | T * | x, | |
const boost::false_type & | ||||
) | [inline] |
val eval::detail::create_val | ( | T & | x, | |
const boost::false_type & | ||||
) | [inline] |
x was not a reference originally
val eval::detail::create_val | ( | T & | x, | |
const boost::true_type & | ||||
) | [inline] |
x was a reference originally
void eval::detail::ensure_val_types_match | ( | const val & | v | ) | [inline] |
const boost::spirit::distinct_parser eval::detail::keyword_p | ( | "a-zA-Z0-9_" | ) |
std::string eval::detail::remove_spaces | ( | const char * | str | ) |
bool eval::detail::strictly_greater_or_equal_all | ( | Iterator1 | begin1, | |
Iterator1 | end1, | |||
Iterator2 | begin2 | |||
) | [inline] |
begin1[i] >= begin2[i] for all i and begin1[i] > begin2[i] for some (i.e. at least one) i.
std::string eval::detail::stringify | ( | const FromT & | val | ) | [inline] |
Attempt to convert val
to a string.
non_streamable_exception | if an appropriate operator<< does not exist. |
DesiredT* eval::detail::val_cast_ptr_helper | ( | const val & | v, | |
const boost::false_type & | ||||
) | [inline] |
ValT will not be a const type (indicated by 2nd argument).
DesiredT* eval::detail::val_cast_ptr_helper | ( | const val & | v, | |
const boost::true_type & | ||||
) | [inline] |
ValT will be a const type (indicated by 2nd argument).
const phoenix::function<call_function_> eval::detail::call_function = call_function_() |
const phoenix::function<call_method_> eval::detail::call_method = call_method_() |
const phoenix::function<call_operator_> eval::detail::call_operator = call_operator_() |
const phoenix::function<declare_global_> eval::detail::declare_global = declare_global_() |
const phoenix::function<lookup_global_> eval::detail::lookup_global = lookup_global_() |
phoenix::function<push_back_> const eval::detail::push_back = push_back_() |
const phoenix::function<wrap_literal_> eval::detail::wrap_literal = wrap_literal_() |
const phoenix::function<wrap_string_literal_> eval::detail::wrap_string_literal = wrap_string_literal_() |