Mirror reflection library 0.5.13
|
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