MIRA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | List of all members
RecursiveMemberReflectorBase< Derived >::ChooseReflect< T > Struct Template Reference

Detect the members type (A1,A2,A3,B1,B2,C) and choose the appropriate struct ReflectAtomic, etc. More...

#include <serialization/RecursiveMemberReflector.h>

Public Types

typedef std::remove_cv< T >::type Type
 
typedef boost::mpl::eval_if
< std::is_pointer< Type >
, boost::mpl::identity
< ReflectPointer >
, boost::mpl::eval_if
< IsAtomicSerializable< Type >
, boost::mpl::identity
< ReflectAtomic >
, boost::mpl::eval_if
< std::is_class< Type >
, boost::mpl::eval_if
< IsCollection< Type >
, boost::mpl::identity
< ReflectCollection >
, boost::mpl::identity
< ReflectComplex >
>, boost::mpl::eval_if
< std::is_enum< Type >
, boost::mpl::identity
< ReflectEnumeration >
, boost::mpl::eval_if
< std::is_array< Type >
, boost::mpl::identity
< ReflectArray >
, boost::mpl::identity
< ReflectUnknown >
> > > > >::type 
type
 

Detailed Description

template<typename Derived>
template<typename T>
struct mira::RecursiveMemberReflectorBase< Derived >::ChooseReflect< T >

Detect the members type (A1,A2,A3,B1,B2,C) and choose the appropriate struct ReflectAtomic, etc.

that handles that type.

Member Typedef Documentation

typedef std::remove_cv<T>::type Type
typedef boost::mpl::eval_if<std::is_pointer<Type>, boost::mpl::identity<ReflectPointer>, boost::mpl::eval_if<IsAtomicSerializable<Type>, boost::mpl::identity<ReflectAtomic>, boost::mpl::eval_if<std::is_class<Type>, boost::mpl::eval_if<IsCollection<Type>, boost::mpl::identity<ReflectCollection>, boost::mpl::identity<ReflectComplex> >, boost::mpl::eval_if<std::is_enum<Type>, boost::mpl::identity<ReflectEnumeration>, boost::mpl::eval_if<std::is_array<Type>, boost::mpl::identity<ReflectArray>, boost::mpl::identity<ReflectUnknown> > > > > >::type type

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