Mirror reflection library 0.5.13

mirror/meta_prog/prepend.hpp

Go to the documentation of this file.
00001 
00012 #ifndef MIRROR_META_PROG_PREPEND_1011291729_HPP
00013 #define MIRROR_META_PROG_PREPEND_1011291729_HPP
00014 
00015 
00016 #include <mirror/meta_prog/range.hpp>
00017 
00018 MIRROR_NAMESPACE_BEGIN
00019 namespace mp {
00020 
00021 #ifdef MIRROR_DOCUMENTATION_ONLY
00022 
00023 
00029 template <typename T, class RangeToModify>
00030 struct prepend
00031 {
00032     typedef Range type;
00033 };
00034 #endif
00035 
00036 template <typename T, typename ... P>
00037 struct prepend<T, range<P...> >
00038 {
00039     typedef range<T, P...> type;
00040 };
00041 
00042 template <typename T, typename X>
00043 struct prepend
00044 {
00045     MIRROR_ASSERT_RETURNS_RANGE(X);
00046     typedef typename prepend<T, typename X::type>::type type;
00047 };
00048 
00049 
00050 } // namespace mp
00051 MIRROR_NAMESPACE_END
00052 
00053 #endif //include guard
00054 

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.