Mirror reflection library 0.5.13
|
00001 00012 #ifndef MIRROR_UTILS_QUICK_REG_CLASS_1011291729_HPP 00013 #define MIRROR_UTILS_QUICK_REG_CLASS_1011291729_HPP 00014 00015 00016 MIRROR_NAMESPACE_BEGIN 00017 00018 // Helper macro for MIRROR_QREG_CLASS 00019 #define MIRROR_HLP_QREG_SIMPLE_BASE_CLASS(R, I, X, ELEM) \ 00020 BOOST_PP_COMMA() \ 00021 MIRROR_REG_BASE_CLASS(_, public, ELEM) 00022 00023 #define MIRROR_QREG_CLASS(ELABORATED_TYPE, SCOPE, NAME, ITEMS) \ 00024 MIRROR_REG_CLASS_BEGIN(ELABORATED_TYPE, SCOPE, NAME) \ 00025 MIRROR_REG_BASE_CLASSES_BEGIN \ 00026 MIRROR_REG_BASE_CLASS( \ 00027 _, public, \ 00028 BOOST_PP_SEQ_HEAD(BOOST_PP_TUPLE_ELEM(2, 0, ITEMS)) \ 00029 ) \ 00030 BOOST_PP_SEQ_FOR_EACH_I( \ 00031 MIRROR_HLP_QREG_SIMPLE_BASE_CLASS, \ 00032 _, BOOST_PP_SEQ_TAIL(BOOST_PP_TUPLE_ELEM(2, 0, ITEMS)) \ 00033 ) \ 00034 MIRROR_REG_BASE_CLASSES_END \ 00035 MIRROR_REG_CLASS_MEM_VARS_BEGIN \ 00036 BOOST_PP_SEQ_FOR_EACH( \ 00037 MIRROR_HLP_QREG_PLAIN_MEM_VAR, \ 00038 _, BOOST_PP_TUPLE_ELEM(2, 1, ITEMS) \ 00039 ) \ 00040 MIRROR_REG_CLASS_MEM_VARS_END \ 00041 MIRROR_REG_CLASS_END 00042 00043 00044 MIRROR_NAMESPACE_END 00045 00046 #endif //include guard 00047