Mirror reflection library - Lagoon run-time layer 0.5.13
|
00001 00011 #ifndef LAGOON_REFLECTION_1011291729_HPP 00012 #define LAGOON_REFLECTION_1011291729_HPP 00013 00014 #include <lagoon/meta_objects.hpp> 00015 #include <mirror/meta_type.hpp> 00016 #include <mirror/meta_class.hpp> 00017 00018 LAGOON_NAMESPACE_BEGIN 00019 00027 00028 00037 template <typename Type> 00038 inline shared<meta_type> reflected_type(void) 00039 { 00040 return aux::get_meta_object< 00041 MIRRORED_TYPE(Type), 00042 meta_type 00043 >(); 00044 } 00045 00047 00056 template <typename Class> 00057 inline shared<meta_class> reflected_class(void) 00058 { 00059 return aux::get_meta_object< 00060 MIRRORED_CLASS(Class), 00061 meta_class 00062 >(); 00063 } 00064 00065 00067 00075 inline shared<meta_namespace> reflected_global_scope(void) 00076 { 00077 return aux::get_meta_object< 00078 MIRRORED_GLOBAL_SCOPE(), 00079 meta_namespace 00080 >(); 00081 } 00082 00083 00084 LAGOON_NAMESPACE_END 00085 00086 #endif //include guard 00087