Mirror reflection library 0.5.13

mirror/utils/quick_reg/class.hpp

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 

Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.