Go to the source code of this file.
Namespaces | |
| namespace | eval |
| namespace | eval::detail |
| namespace | eval::detail::overload_backups |
Classes | |
| class | eval::bad_val_cast |
| class | eval::non_numeric_exception |
| class | eval::overflow_exception |
| class | eval::non_ostreamable_exception |
| class | eval::empty_exception |
| class | eval::detail::storage_base_common |
| class | eval::detail::storage_base_nonconst |
| class | eval::detail::storage_unmanaged_ptr< ValT > |
| class | eval::detail::storage_unmanaged_ptr_nonconst< ValT > |
| class | eval::detail::storage_transfer_ownership< ValT > |
| class | eval::detail::storage_transfer_ownership_nonconst< ValT > |
| class | eval::detail::storage_transfer_ownership_array< ValT > |
| class | eval::detail::storage_transfer_ownership_array_nonconst< ValT > |
| class | eval::detail::storage_copy_value< ValT > |
| class | eval::detail::storage_copy_value_nonconst< ValT > |
| class | eval::detail::val |
| A generic class for wrapping any type of object/primitive. More... | |
Typedefs | |
| typedef boost::intmax_t | eval::large_int |
| Used as a return value, when trying to convert an eval::val to int. | |
| typedef long double | eval::large_double |
| Used as a return value when trying to convert an eval::val to double. | |
| typedef detail::val | eval::val |
Enumerations | |
| enum | eval::ownership_type_nocopy { eval::UNMANAGED_PTR = 1, eval::TRANSFER_OWNERSHIP, eval::TRANSFER_OWNERSHIP_ARRAY } |
| enum | eval::ownership_type_shared_ptr { eval::SHARED_PTR = 100 } |
| enum | eval::ownership_type_shared_array { eval::SHARED_ARRAY = 200 } |
| enum | eval::ownership_type_copy { eval::COPY_VALUE = 300 } |
Functions | |
| template<typename FromT, typename ToT> | |
| ToT | eval::detail::convert_numeric_helper (const FromT *x, const boost::true_type &) |
| template<typename FromT, typename ToT> | |
| ToT | eval::detail::convert_numeric_helper (const FromT *x, const boost::false_type &) |
| template<typename FromT, typename ToT> | |
| ToT | eval::detail::convert_numeric (const FromT *x, const boost::true_type &) |
| template<typename FromT, typename ToT> | |
| ToT | eval::detail::convert_numeric (const FromT *, const boost::false_type &) |
| template<typename CharT, typename TraitsT, typename ValT> | |
| std::basic_ostream< CharT, TraitsT > & | eval::detail::overload_backups::operator<< (std::basic_ostream< CharT, TraitsT > &, const ValT &) |
| A fallback operator<< to ensure stringify() will always compile. | |
| template<typename FromT> | |
| std::string | eval::detail::stringify (const FromT &val) |
| template<typename FromT> | |
| std::string | eval::detail::convert_lexical_non_c_str (const FromT *val) |
| template<typename FromT> | |
| std::string | eval::detail::convert_lexical (const FromT *val) |
| template<> | |
| std::string | eval::detail::convert_lexical< char > (const char *val) |
| Specialisation to convert const char * to string. | |
| template<typename DesiredT> | |
| void | eval::detail::ensure_val_types_match (const val &v) |
| template<typename DesiredT> | |
| DesiredT * | eval::detail::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 * | eval::detail::val_cast_ptr_helper (const val &v, const boost::false_type &) |
| ValT will not be a const type (indicated by 2nd argument). | |
| template<typename DesiredT> | |
| const DesiredT * | eval::val_cast_ptr (const val &v) |
| template<typename DesiredT> | |
| DesiredT * | eval::val_cast_ptr (val &v) |
Note that the eval::val class is defined within namespace eval::detail. A typedef is used to bring it into the eval namespace. (Doing so enables one to define val's friend functions within the eval::detail namespace, which otherwise does not appear to be easy.)
1.5.6