Mirror reflection library 0.5.13

mirror/meta_prog/is_one_of.hpp

Go to the documentation of this file.
00001 
00011 #ifndef MIRROR_META_PROG_IS_ONE_OF_1102211340_HPP
00012 #define MIRROR_META_PROG_IS_ONE_OF_1102211340_HPP
00013 
00014 #include <mirror/meta_prog/forward_decl.hpp>
00015 #include <mirror/meta_prog/range.hpp>
00016 #include <mirror/meta_prog/is_a.hpp>
00017 #include <mirror/meta_prog/or.hpp>
00018 
00019 MIRROR_NAMESPACE_BEGIN
00020 namespace mp {
00021 
00022 #ifdef MIRROR_DOCUMENTATION_ONLY
00023 
00024 
00030 template <class MetaObject, class Concepts>
00031 struct is_one_of
00032 {
00034     typedef BooleanConstant type;
00035 };
00036 #else
00037 
00038 template <class X, class ... Concept>
00039 struct is_one_of<X, range<Concept ...> >
00040  : or_<typename is_a< X, Concept >::type ...>::type
00041 { };
00042 #endif
00043 
00044 } // namespace mp
00045 MIRROR_NAMESPACE_END
00046 
00047 #endif //include guard
00048 

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.