Mirror reflection library 0.5.13

mirror/meta_prog/forward_decl.hpp

Go to the documentation of this file.
00001 
00010 #ifndef MIRROR_META_PROG_FORWARD_DECL_1011291729_HPP
00011 #define MIRROR_META_PROG_FORWARD_DECL_1011291729_HPP
00012 
00013 
00014 #include <type_traits>
00015 
00016 MIRROR_NAMESPACE_BEGIN
00017 namespace mp {
00018 
00019 struct nil_t;
00020 
00021 template <typename T>
00022 struct identity;
00023 
00024 template <typename BooleanConstant>
00025 struct not_;
00026 
00027 template <typename ... BooleanConstants>
00028 struct or_;
00029 
00030 template <typename ... BooleanConstants>
00031 struct and_;
00032 
00033 template <class Bool, class IfTrue, class IfFalse>
00034 struct if_;
00035 
00036 template <typename Range, typename Item>
00037 struct push_back;
00038 
00039 template <typename T>
00040 struct optional;
00041 
00042 template <typename Optional>
00043 struct get;
00044 
00045 template <typename Optional>
00046 struct nil;
00047 
00048 template <typename ... P>
00049 struct range;
00050 
00051 template <typename Range>
00052 struct empty;
00053 
00054 template <typename Range>
00055 struct size;
00056 
00057 template <typename Range>
00058 struct front;
00059 
00060 template <typename Range>
00061 struct back;
00062 
00063 template <typename Range, int Index>
00064 struct at_c;
00065 
00066 template <typename Range, class Index>
00067 struct at;
00068 
00069 template <typename Range>
00070 struct step_front;
00071 
00072 template <
00073     typename Range,
00074     typename Initial,
00075     class ForwardOp
00076 > struct fold;
00077 
00078 template <typename Range, typename T>
00079 struct find;
00080 
00081 template <typename Range, typename T>
00082 struct contains;
00083 
00084 template <typename Range, typename T>
00085 struct lacks;
00086 
00087 template <class ... Ranges>
00088 struct concat;
00089 
00090 template <typename T, class Range>
00091 struct prepend;
00092 
00093 template <class Range, typename T>
00094 struct append;
00095 
00096 template <class Range, class UnaryMetaFnClass>
00097 struct transform;
00098 
00099 template <class Range, class PredicateMetaFnClass>
00100 struct only_if;
00101 
00102 template <class Range>
00103 struct unique;
00104 
00105 template <class Expr>
00106 struct protect;
00107 
00108 template <class MetaObject, class Concept>
00109 struct is_a;
00110 
00111 template <class MetaObject, class Concepts>
00112 struct is_one_of;
00113 
00114 template <class MetaObject, class Concept>
00115 struct as_a;
00116 
00117 template <typename Range, typename Functor>
00118 void for_each(Functor func);
00119 
00120 template <typename Range, typename Functor>
00121 void for_each_ii(Functor func);
00122 
00123 template <
00124     typename Range,
00125     typename ResultType,
00126     typename Functor,
00127     typename ValueType
00128 > ResultType accumulate(Functor func, ValueType initial);
00129 
00130 template <
00131     typename Range,
00132     typename ResultType,
00133     typename Functor,
00134     typename ValueType
00135 > ResultType accumulate_ii(Functor func, ValueType initial);
00136 
00137 template <typename T>
00138 struct is_pack_nil_type;
00139 
00140 template <typename Range>
00141 struct remove_nil_types;
00142 
00143 } // namespace mp
00144 MIRROR_NAMESPACE_END
00145 
00146 #endif //include guard
00147 

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.