Mirror reflection library - Lagoon run-time layer 0.5.13
|
00001 00011 #ifndef LAGOON_CATEGORIES_1011291729_HPP 00012 #define LAGOON_CATEGORIES_1011291729_HPP 00013 00014 #include <lagoon/config.hpp> 00015 #include <puddle/categories.hpp> 00016 #include <mirror/meta_object_tags.hpp> 00017 #include <mirror/preprocessor.hpp> 00018 00019 LAGOON_NAMESPACE_BEGIN 00028 00029 00049 #ifdef MIRROR_DOCUMENTATION_ONLY 00050 enum meta_object_category; 00051 #else 00052 using puddle::meta_object_category; 00053 #endif 00054 00055 #undef LAGOON_HLPR_DEFINE_MO_TAG_VALUE 00056 #undef LAGOON_HLPR_DEFINE_MO_TAG 00057 00058 // Implement the categorize interface member function 00059 #define LAGOON_HELPER_IMPL_CATEGORIZE_INTERFACE(OBJECT, I, X) \ 00060 inline meta_object_category \ 00061 categorize_interface(meta_ ## OBJECT *) \ 00062 { \ 00063 return meta_object_category:: \ 00064 meta_ ## OBJECT ## _tag; \ 00065 } 00066 MIRROR_FOR_EACH_META_OBJECT(LAGOON_HELPER_IMPL_CATEGORIZE_INTERFACE, _) 00067 #undef LAGOON_HELPER_IMPL_CATEGORIZE_INTERFACE 00068 00069 00070 LAGOON_NAMESPACE_END 00071 00072 #endif //include guard 00073