Mirror reflection library 0.5.13
|
00001 00010 #ifndef MIRROR_DOC_CONCEPTS_META_PROG_1104131331_HPP 00011 #define MIRROR_DOC_CONCEPTS_META_PROG_1104131331_HPP 00012 00013 #include <mirror/config.hpp> 00014 00015 #ifdef MIRROR_DOCUMENTATION_ONLY 00016 00017 MIRROR_NAMESPACE_BEGIN 00018 // This section is here for documentation purposes only 00019 00026 00027 00033 struct IntegralConstantType 00034 { 00035 static const int value; 00036 typedef IntegralConstantType type; 00037 }; 00038 00040 00046 struct BooleanConstantType 00047 { 00048 static const bool value; 00049 typedef BooleanConstantType type; 00050 }; 00051 00053 00056 struct Element { }; 00057 00059 00074 template <typename ... Elements> 00075 struct Range 00076 { 00078 00082 friend struct empty<Range>; 00083 00085 00089 friend struct size<Range>; 00090 00092 00096 friend struct front<Range>; 00097 00099 00103 friend struct step_front<Range>; 00104 00106 00110 friend struct at<Range, Position>; 00111 00113 00117 friend struct at_c<Range, Position>; 00118 }; 00119 00121 00130 template <typename Element> 00131 struct Optional 00132 { 00134 00138 friend struct nil<Optional>; 00139 00141 00145 friend struct get<Optional>; 00146 }; 00147 00148 00149 MIRROR_NAMESPACE_END 00150 00151 #endif // MIRROR_DOCUMENTATION_ONLY 00152 00153 #endif //include guard 00154