Boost Reflect Library 0.1.0
Classes | Defines
vtable.hpp File Reference
#include <boost/preprocessor/arithmetic/inc.hpp>
#include <boost/typeof/typeof.hpp>
#include <boost/preprocessor/seq/push_front.hpp>
#include <boost/preprocessor/seq/seq.hpp>
#include <boost/preprocessor/seq/enum.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/comparison/equal.hpp>
#include <boost/preprocessor/seq/transform.hpp>
#include <boost/preprocessor/seq/to_tuple.hpp>
#include <boost/preprocessor/tuple/to_list.hpp>
#include <boost/preprocessor/list/enum.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/reflect/reflect.hpp>

Go to the source code of this file.

Classes

class  vtable< InterfaceType, InterfaceDelegate >
 Contains functors defined by InterfaceDelegate for each reflected member of InterfaceType. More...
struct  vtable_reflector< InterfaceType >
 Enables specialization of visit for InterfaceType. More...

Defines

#define BOOST_REFLECT_ANY_DERIVED(NAME, INHERITS, MEMBERS)
#define BOOST_REFLECT_ANY(NAME, MEMBERS)   BOOST_REFLECT_ANY_DERIVED( NAME, BOOST_PP_SEQ_NIL, MEMBERS )

Define Documentation

#define BOOST_REFLECT_ANY_DERIVED (   NAME,
  INHERITS,
  MEMBERS 
)
Value:
BOOST_REFLECT_TYPEINFO(NAME) \
namespace boost { namespace reflect { \
template<typename InterfaceDelegate > \
struct vtable<NAME,InterfaceDelegate> : BOOST_PP_SEQ_FOR_EACH( BOOST_REFLECT_VTABLE_PUBLIC_BASE, InterfaceDelegate, INHERITS ) private vtable_base<NAME> { \
    typedef NAME interface_type; \
    BOOST_PP_SEQ_FOR_EACH( BOOST_REFLECT_VTABLE_DEFINE_MEMBER, NAME, MEMBERS ) \
}; \
template<> struct vtable_reflector<NAME> { \
    typedef NAME interface_type; \
    template<typename Visitor, typename InterfaceDelegate> \
    static void visit( const boost::reflect::vtable<NAME,InterfaceDelegate>* vtbl,  \
                       const Visitor& visitor ) { \
        typedef boost::reflect::vtable<NAME,InterfaceDelegate> vtable_type; \
        BOOST_PP_SEQ_FOR_EACH( BOOST_REFLECT_VTABLE_VISIT_BASE, visitor, INHERITS ) \
        BOOST_PP_SEQ_FOR_EACH( BOOST_REFLECT_VTABLE_VISIT_MEMBER, visitor, MEMBERS ) \
    } \
};\
\
} }

Definition at line 89 of file vtable.hpp.

#define BOOST_REFLECT_ANY (   NAME,
  MEMBERS 
)    BOOST_REFLECT_ANY_DERIVED( NAME, BOOST_PP_SEQ_NIL, MEMBERS )

Definition at line 110 of file vtable.hpp.


© Daniel Larimer 2010-2011 - Licensed under Boost Software License, Version 1.0 Boost Reflect Library