#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.
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 ) |