Mirror reflection library 0.5.13

mirror/utils/quick_reg/pod_class.hpp

00001 
00012 #ifndef MIRROR_UTILS_QUICK_REG_POD_CLASS_1011291729_HPP
00013 #define MIRROR_UTILS_QUICK_REG_POD_CLASS_1011291729_HPP
00014 
00015 MIRROR_NAMESPACE_BEGIN
00016 
00017 // helper macro for MIRROR_QREG_POD_CLASS
00018 #define MIRROR_HLP_QREG_PLAIN_MEM_VAR(R, X, ELEM) \
00019 MIRROR_REG_CLASS_MEM_VAR(_, _, _, ELEM)
00020 
00021 #ifdef MIRROR_DOCUMENTATION_ONLY
00022 
00023 
00035 #define MIRROR_QREG_GLOBAL_SCOPE_POD_CLASS(ELABORATED_TYPE, CLASS, MEMBERS)
00036 #else
00037 #define MIRROR_QREG_GLOBAL_SCOPE_POD_CLASS(ELABORATED_TYPE, CLASS, MEMBERS) \
00038 MIRROR_REG_GLOBAL_SCOPE_CLASS_BEGIN(ELABORATED_TYPE, CLASS) \
00039 MIRROR_REG_CLASS_MEM_VARS_BEGIN \
00040 BOOST_PP_SEQ_FOR_EACH(MIRROR_HLP_QREG_PLAIN_MEM_VAR, _, MEMBERS) \
00041 MIRROR_REG_CLASS_MEM_VARS_END \
00042 MIRROR_REG_CONSTRUCTORS_BEGIN \
00043 MIRROR_REG_DEFAULT_CONSTRUCTOR(public) \
00044 MIRROR_REG_COPY_CONSTRUCTOR(public) \
00045 MIRROR_REG_STRUCT_INITIALIZER() \
00046 MIRROR_REG_CONSTRUCTORS_END \
00047 MIRROR_REG_CLASS_END
00048 #endif
00049 
00050 #ifdef MIRROR_DOCUMENTATION_ONLY
00051 
00052 
00066 #define MIRROR_QREG_POD_CLASS(ELABORATED_TYPE, NAMESPACE, CLASS, MEMBERS)
00067 #else
00068 #define MIRROR_QREG_POD_CLASS(ELABORATED_TYPE, NAMESPACE, CLASS, MEMBERS) \
00069 MIRROR_REG_CLASS_BEGIN(ELABORATED_TYPE, NAMESPACE, CLASS) \
00070 MIRROR_REG_CLASS_MEM_VARS_BEGIN \
00071 BOOST_PP_SEQ_FOR_EACH(MIRROR_HLP_QREG_PLAIN_MEM_VAR, _, MEMBERS) \
00072 MIRROR_REG_CLASS_MEM_VARS_END \
00073 MIRROR_REG_CONSTRUCTORS_BEGIN \
00074 MIRROR_REG_DEFAULT_CONSTRUCTOR(public) \
00075 MIRROR_REG_COPY_CONSTRUCTOR(public) \
00076 MIRROR_REG_STRUCT_INITIALIZER() \
00077 MIRROR_REG_CONSTRUCTORS_END \
00078 MIRROR_REG_CLASS_END
00079 #endif
00080 
00081 #ifdef MIRROR_DOCUMENTATION_ONLY
00082 
00083 
00097 #define MIRROR_QREG_NESTED_POD_CLASS(ELABORATED_TYPE, PARENT_CLASS, CLASS, MEMBERS)
00098 #else
00099 #define MIRROR_QREG_NESTED_POD_CLASS(ELABORATED_TYPE, PARENT_CLASS, CLASS, MEMBERS)\
00100 MIRROR_REG_NESTED_CLASS_BEGIN(ELABORATED_TYPE, PARENT_CLASS, CLASS) \
00101 MIRROR_REG_CLASS_MEM_VARS_BEGIN \
00102 BOOST_PP_SEQ_FOR_EACH(MIRROR_HLP_QREG_PLAIN_MEM_VAR, _, MEMBERS) \
00103 MIRROR_REG_CLASS_MEM_VARS_END \
00104 MIRROR_REG_CONSTRUCTORS_BEGIN \
00105 MIRROR_REG_DEFAULT_CONSTRUCTOR(public) \
00106 MIRROR_REG_COPY_CONSTRUCTOR(public) \
00107 MIRROR_REG_STRUCT_INITIALIZER() \
00108 MIRROR_REG_CONSTRUCTORS_END \
00109 MIRROR_REG_CLASS_END
00110 #endif
00111 
00112 MIRROR_NAMESPACE_END
00113 
00114 #endif //include guard
00115 

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.