Mirror reflection library - Puddle compile-time layer 0.5.13

puddle/puddle.hpp

Go to the documentation of this file.
00001 
00012 #ifndef PUDDLE_PUDDLE_1103151324_HPP
00013 #define PUDDLE_PUDDLE_1103151324_HPP
00014 
00015 #include <puddle/config.hpp>
00016 #include <puddle/categories.hpp>
00017 #include <puddle/specifiers.hpp>
00018 #include <puddle/auxiliary/wrap.hpp>
00019 #include <puddle/auxiliary/integer.hpp>
00020 #include <puddle/auxiliary/range.hpp>
00021 #include <puddle/auxiliary/meta_objects.hpp>
00022 #include <puddle/auxiliary/meta_instance.hpp>
00023 #include <mirror/mirror_fwd.hpp>
00024 
00025 
00047 PUDDLE_NAMESPACE_BEGIN
00048 
00056 template <typename Type>
00057 struct reflected
00058 {
00059     typedef typename aux::wrap<
00060         typename mirror::reflected<Type>::type
00061     >::type type;
00062 };
00063 
00065 
00076 template <typename Type>
00077 typename reflected<Type>::type reflected_type(void)
00078 {
00079     return typename reflected<Type>::type();
00080 }
00081 
00083 
00089 template <typename MirrorMetaObject>
00090 typename aux::wrap<MirrorMetaObject>::type adapt(void)
00091 {
00092     return typename aux::wrap<MirrorMetaObject>::type();
00093 }
00094 
00095 template <class MetaFreeVariable>
00096 inline decltype(aux::meta_free_variable_instance<MetaFreeVariable>())
00097 instance_of(aux::meta_free_variable<MetaFreeVariable> var)
00098 {
00099     return aux::meta_free_variable_instance<MetaFreeVariable>();
00100 }
00101 
00102 PUDDLE_NAMESPACE_END
00103 
00104 #endif //include guard
00105 

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.