SourceForge.net Logo

eval::detail Namespace Reference


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


Enumeration Type Documentation

We need to rank conversions for overload resolution.

Enumerator:
CONVERSION_EXACT_MATCH 
CONVERSION_QUALIFICATION 
CONVERSION_OTHER_CONVERSION 
CONVERSION_IMPOSSIBLE 


Function Documentation

template<typename FromT>
std::string eval::detail::convert_lexical ( const FromT *  val  )  [inline]

Attempt to convert *val to a string.

Exceptions:
non_streamable_exception if an appropriate operator<< does not exist.
Note:
Note the specialisation for const char *.

template<>
std::string eval::detail::convert_lexical< char > ( const char *  val  )  [inline]

Specialisation to convert const char * to string.

template<typename FromT>
std::string eval::detail::convert_lexical_non_c_str ( const FromT *  val  )  [inline]

Attempt to convert *val to a string.

Exceptions:
non_streamable_exception if an appropriate operator<< does not exist.

template<typename FromT, typename ToT>
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.

Precondition:
Second argument indicates whether x is numeric (int, double, ...).

template<typename FromT, typename ToT>
ToT eval::detail::convert_numeric ( const FromT *  x,
const boost::true_type &   
) [inline]

Attempt a numeric conversion of x to ToT, checking for overflow.

Note:
The second argument indicates whether x is a numeric type; this overload will only be chosen if it is.
Precondition:
x not NULL.

Second argument indicates whether x is numeric (int, double, ...).

ToT is numeric.

Exceptions:
overflow_exception x doesn't fit into ToT

template<typename FromT, typename 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.

Note:
The second argument indicates whether ToT is an integral type; this overload will only be chosen if it is not.
Precondition:
x is numeric (i.e. int, double, ....).

Second argument indicates whether ToT is integral.

Exceptions:
overflow_exception x doesn't fit into ToT

template<typename FromT, typename 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.

Note:
The second argument indicates whether ToT is an integral type; this overload will only be chosen if it is.
Precondition:
x is numeric (i.e. int, double, ....).

Second argument indicates whether ToT is integral.

Exceptions:
overflow_exception x doesn't fit into ToT

template<typename T>
val eval::detail::create_val ( T *  x,
const boost::false_type &   
) [inline]

template<typename T>
val eval::detail::create_val ( T &  x,
const boost::false_type &   
) [inline]

x was not a reference originally

template<typename T>
val eval::detail::create_val ( T &  x,
const boost::true_type &   
) [inline]

x was a reference originally

template<typename DesiredT>
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  ) 

template<typename Iterator1, typename Iterator2>
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.

template<typename FromT>
std::string eval::detail::stringify ( const FromT &  val  )  [inline]

Attempt to convert val to a string.

Exceptions:
non_streamable_exception if an appropriate operator<< does not exist.

template<typename DesiredT>
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).

template<typename DesiredT>
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).


Variable Documentation

const phoenix::function<call_method_> eval::detail::call_method = call_method_()

phoenix::function<push_back_> const eval::detail::push_back = push_back_()


Generated on Sat Sep 20 20:02:34 2008 for eval by  doxygen 1.5.6