Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 1 | |
| 2 | // (C) Copyright Tobias Schwinger |
| 3 | // |
| 4 | // Use modification and distribution are subject to the boost Software License, |
| 5 | // Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt). |
| 6 | |
| 7 | //------------------------------------------------------------------------------ |
| 8 | |
| 9 | // no include guards, this file is intended for multiple inclusion |
| 10 | |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 11 | // input: NDNBOOST_FT_syntax type macro to use |
| 12 | // input: NDNBOOST_FT_cc empty or cc specifier |
| 13 | // input: NDNBOOST_FT_ell empty or "..." |
| 14 | // input: NDNBOOST_FT_cv empty or cv qualifiers |
| 15 | // input: NDNBOOST_FT_flags single decimal integer encoding the flags |
| 16 | // output: NDNBOOST_FT_n number of component types (arity+1) |
| 17 | // output: NDNBOOST_FT_arity current arity |
| 18 | // output: NDNBOOST_FT_type macro that expands to the type |
| 19 | // output: NDNBOOST_FT_tplargs(p) template arguments with given prefix |
| 20 | // output: NDNBOOST_FT_params(p) parameters with given prefix |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 21 | |
| 22 | # include <ndnboost/function_types/detail/synthesize_impl/arity10_0.hpp> |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 23 | # define NDNBOOST_FT_make_type(flags,cc,arity) NDNBOOST_FT_make_type_impl(flags,cc,arity) |
| 24 | # define NDNBOOST_FT_make_type_impl(flags,cc,arity) make_type_ ## flags ## _ ## cc ## _ ## arity |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 25 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 26 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 27 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 28 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 29 | }; |
| 30 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 31 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 12 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 32 | { |
| 33 | template<typename S> struct synthesize_impl_i |
| 34 | { |
| 35 | private: |
| 36 | typedef typename mpl::begin<S> ::type iter_0; |
| 37 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 38 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 39 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 40 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 41 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 42 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 43 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 44 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 45 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 46 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 47 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 48 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 49 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,11) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 50 | < typename mpl::deref< iter_0 > ::type |
| 51 | , typename mpl::deref< iter_1 > ::type |
| 52 | , typename mpl::deref< iter_2 > ::type |
| 53 | , typename mpl::deref< iter_3 > ::type |
| 54 | , typename mpl::deref< iter_4 > ::type |
| 55 | , typename mpl::deref< iter_5 > ::type |
| 56 | , typename mpl::deref< iter_6 > ::type |
| 57 | , typename mpl::deref< iter_7 > ::type |
| 58 | , typename mpl::deref< iter_8 > ::type |
| 59 | , typename mpl::deref< iter_9 > ::type |
| 60 | , typename mpl::deref< iter_10 > ::type |
| 61 | , typename mpl::deref< iter_11 > ::type |
| 62 | > ::type type; |
| 63 | }; |
| 64 | }; |
| 65 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 66 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 67 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 68 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 69 | }; |
| 70 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 71 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 13 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 72 | { |
| 73 | template<typename S> struct synthesize_impl_i |
| 74 | { |
| 75 | private: |
| 76 | typedef typename mpl::begin<S> ::type iter_0; |
| 77 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 78 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 79 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 80 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 81 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 82 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 83 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 84 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 85 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 86 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 87 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 88 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 89 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 90 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,12) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 91 | < typename mpl::deref< iter_0 > ::type |
| 92 | , typename mpl::deref< iter_1 > ::type |
| 93 | , typename mpl::deref< iter_2 > ::type |
| 94 | , typename mpl::deref< iter_3 > ::type |
| 95 | , typename mpl::deref< iter_4 > ::type |
| 96 | , typename mpl::deref< iter_5 > ::type |
| 97 | , typename mpl::deref< iter_6 > ::type |
| 98 | , typename mpl::deref< iter_7 > ::type |
| 99 | , typename mpl::deref< iter_8 > ::type |
| 100 | , typename mpl::deref< iter_9 > ::type |
| 101 | , typename mpl::deref< iter_10 > ::type |
| 102 | , typename mpl::deref< iter_11 > ::type |
| 103 | , typename mpl::deref< iter_12 > ::type |
| 104 | > ::type type; |
| 105 | }; |
| 106 | }; |
| 107 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 108 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 109 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 110 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 111 | }; |
| 112 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 113 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 14 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 114 | { |
| 115 | template<typename S> struct synthesize_impl_i |
| 116 | { |
| 117 | private: |
| 118 | typedef typename mpl::begin<S> ::type iter_0; |
| 119 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 120 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 121 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 122 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 123 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 124 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 125 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 126 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 127 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 128 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 129 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 130 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 131 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 132 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 133 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,13) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 134 | < typename mpl::deref< iter_0 > ::type |
| 135 | , typename mpl::deref< iter_1 > ::type |
| 136 | , typename mpl::deref< iter_2 > ::type |
| 137 | , typename mpl::deref< iter_3 > ::type |
| 138 | , typename mpl::deref< iter_4 > ::type |
| 139 | , typename mpl::deref< iter_5 > ::type |
| 140 | , typename mpl::deref< iter_6 > ::type |
| 141 | , typename mpl::deref< iter_7 > ::type |
| 142 | , typename mpl::deref< iter_8 > ::type |
| 143 | , typename mpl::deref< iter_9 > ::type |
| 144 | , typename mpl::deref< iter_10 > ::type |
| 145 | , typename mpl::deref< iter_11 > ::type |
| 146 | , typename mpl::deref< iter_12 > ::type |
| 147 | , typename mpl::deref< iter_13 > ::type |
| 148 | > ::type type; |
| 149 | }; |
| 150 | }; |
| 151 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 152 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 153 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 154 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 155 | }; |
| 156 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 157 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 15 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 158 | { |
| 159 | template<typename S> struct synthesize_impl_i |
| 160 | { |
| 161 | private: |
| 162 | typedef typename mpl::begin<S> ::type iter_0; |
| 163 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 164 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 165 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 166 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 167 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 168 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 169 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 170 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 171 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 172 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 173 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 174 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 175 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 176 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 177 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 178 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,14) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 179 | < typename mpl::deref< iter_0 > ::type |
| 180 | , typename mpl::deref< iter_1 > ::type |
| 181 | , typename mpl::deref< iter_2 > ::type |
| 182 | , typename mpl::deref< iter_3 > ::type |
| 183 | , typename mpl::deref< iter_4 > ::type |
| 184 | , typename mpl::deref< iter_5 > ::type |
| 185 | , typename mpl::deref< iter_6 > ::type |
| 186 | , typename mpl::deref< iter_7 > ::type |
| 187 | , typename mpl::deref< iter_8 > ::type |
| 188 | , typename mpl::deref< iter_9 > ::type |
| 189 | , typename mpl::deref< iter_10 > ::type |
| 190 | , typename mpl::deref< iter_11 > ::type |
| 191 | , typename mpl::deref< iter_12 > ::type |
| 192 | , typename mpl::deref< iter_13 > ::type |
| 193 | , typename mpl::deref< iter_14 > ::type |
| 194 | > ::type type; |
| 195 | }; |
| 196 | }; |
| 197 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 198 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 199 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 200 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 201 | }; |
| 202 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 203 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 16 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 204 | { |
| 205 | template<typename S> struct synthesize_impl_i |
| 206 | { |
| 207 | private: |
| 208 | typedef typename mpl::begin<S> ::type iter_0; |
| 209 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 210 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 211 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 212 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 213 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 214 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 215 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 216 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 217 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 218 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 219 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 220 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 221 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 222 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 223 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 224 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 225 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,15) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 226 | < typename mpl::deref< iter_0 > ::type |
| 227 | , typename mpl::deref< iter_1 > ::type |
| 228 | , typename mpl::deref< iter_2 > ::type |
| 229 | , typename mpl::deref< iter_3 > ::type |
| 230 | , typename mpl::deref< iter_4 > ::type |
| 231 | , typename mpl::deref< iter_5 > ::type |
| 232 | , typename mpl::deref< iter_6 > ::type |
| 233 | , typename mpl::deref< iter_7 > ::type |
| 234 | , typename mpl::deref< iter_8 > ::type |
| 235 | , typename mpl::deref< iter_9 > ::type |
| 236 | , typename mpl::deref< iter_10 > ::type |
| 237 | , typename mpl::deref< iter_11 > ::type |
| 238 | , typename mpl::deref< iter_12 > ::type |
| 239 | , typename mpl::deref< iter_13 > ::type |
| 240 | , typename mpl::deref< iter_14 > ::type |
| 241 | , typename mpl::deref< iter_15 > ::type |
| 242 | > ::type type; |
| 243 | }; |
| 244 | }; |
| 245 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 246 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 247 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 248 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 249 | }; |
| 250 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 251 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 17 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 252 | { |
| 253 | template<typename S> struct synthesize_impl_i |
| 254 | { |
| 255 | private: |
| 256 | typedef typename mpl::begin<S> ::type iter_0; |
| 257 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 258 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 259 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 260 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 261 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 262 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 263 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 264 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 265 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 266 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 267 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 268 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 269 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 270 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 271 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 272 | typedef typename mpl::next< iter_15 > ::type iter_16; |
| 273 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 274 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,16) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 275 | < typename mpl::deref< iter_0 > ::type |
| 276 | , typename mpl::deref< iter_1 > ::type |
| 277 | , typename mpl::deref< iter_2 > ::type |
| 278 | , typename mpl::deref< iter_3 > ::type |
| 279 | , typename mpl::deref< iter_4 > ::type |
| 280 | , typename mpl::deref< iter_5 > ::type |
| 281 | , typename mpl::deref< iter_6 > ::type |
| 282 | , typename mpl::deref< iter_7 > ::type |
| 283 | , typename mpl::deref< iter_8 > ::type |
| 284 | , typename mpl::deref< iter_9 > ::type |
| 285 | , typename mpl::deref< iter_10 > ::type |
| 286 | , typename mpl::deref< iter_11 > ::type |
| 287 | , typename mpl::deref< iter_12 > ::type |
| 288 | , typename mpl::deref< iter_13 > ::type |
| 289 | , typename mpl::deref< iter_14 > ::type |
| 290 | , typename mpl::deref< iter_15 > ::type |
| 291 | , typename mpl::deref< iter_16 > ::type |
| 292 | > ::type type; |
| 293 | }; |
| 294 | }; |
| 295 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 296 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 297 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 298 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 299 | }; |
| 300 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 301 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 18 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 302 | { |
| 303 | template<typename S> struct synthesize_impl_i |
| 304 | { |
| 305 | private: |
| 306 | typedef typename mpl::begin<S> ::type iter_0; |
| 307 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 308 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 309 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 310 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 311 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 312 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 313 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 314 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 315 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 316 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 317 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 318 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 319 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 320 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 321 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 322 | typedef typename mpl::next< iter_15 > ::type iter_16; |
| 323 | typedef typename mpl::next< iter_16 > ::type iter_17; |
| 324 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 325 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,17) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 326 | < typename mpl::deref< iter_0 > ::type |
| 327 | , typename mpl::deref< iter_1 > ::type |
| 328 | , typename mpl::deref< iter_2 > ::type |
| 329 | , typename mpl::deref< iter_3 > ::type |
| 330 | , typename mpl::deref< iter_4 > ::type |
| 331 | , typename mpl::deref< iter_5 > ::type |
| 332 | , typename mpl::deref< iter_6 > ::type |
| 333 | , typename mpl::deref< iter_7 > ::type |
| 334 | , typename mpl::deref< iter_8 > ::type |
| 335 | , typename mpl::deref< iter_9 > ::type |
| 336 | , typename mpl::deref< iter_10 > ::type |
| 337 | , typename mpl::deref< iter_11 > ::type |
| 338 | , typename mpl::deref< iter_12 > ::type |
| 339 | , typename mpl::deref< iter_13 > ::type |
| 340 | , typename mpl::deref< iter_14 > ::type |
| 341 | , typename mpl::deref< iter_15 > ::type |
| 342 | , typename mpl::deref< iter_16 > ::type |
| 343 | , typename mpl::deref< iter_17 > ::type |
| 344 | > ::type type; |
| 345 | }; |
| 346 | }; |
| 347 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 348 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 349 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 350 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 351 | }; |
| 352 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 353 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 19 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 354 | { |
| 355 | template<typename S> struct synthesize_impl_i |
| 356 | { |
| 357 | private: |
| 358 | typedef typename mpl::begin<S> ::type iter_0; |
| 359 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 360 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 361 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 362 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 363 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 364 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 365 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 366 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 367 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 368 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 369 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 370 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 371 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 372 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 373 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 374 | typedef typename mpl::next< iter_15 > ::type iter_16; |
| 375 | typedef typename mpl::next< iter_16 > ::type iter_17; |
| 376 | typedef typename mpl::next< iter_17 > ::type iter_18; |
| 377 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 378 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,18) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 379 | < typename mpl::deref< iter_0 > ::type |
| 380 | , typename mpl::deref< iter_1 > ::type |
| 381 | , typename mpl::deref< iter_2 > ::type |
| 382 | , typename mpl::deref< iter_3 > ::type |
| 383 | , typename mpl::deref< iter_4 > ::type |
| 384 | , typename mpl::deref< iter_5 > ::type |
| 385 | , typename mpl::deref< iter_6 > ::type |
| 386 | , typename mpl::deref< iter_7 > ::type |
| 387 | , typename mpl::deref< iter_8 > ::type |
| 388 | , typename mpl::deref< iter_9 > ::type |
| 389 | , typename mpl::deref< iter_10 > ::type |
| 390 | , typename mpl::deref< iter_11 > ::type |
| 391 | , typename mpl::deref< iter_12 > ::type |
| 392 | , typename mpl::deref< iter_13 > ::type |
| 393 | , typename mpl::deref< iter_14 > ::type |
| 394 | , typename mpl::deref< iter_15 > ::type |
| 395 | , typename mpl::deref< iter_16 > ::type |
| 396 | , typename mpl::deref< iter_17 > ::type |
| 397 | , typename mpl::deref< iter_18 > ::type |
| 398 | > ::type type; |
| 399 | }; |
| 400 | }; |
| 401 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 402 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 403 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 404 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 405 | }; |
| 406 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 407 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 20 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 408 | { |
| 409 | template<typename S> struct synthesize_impl_i |
| 410 | { |
| 411 | private: |
| 412 | typedef typename mpl::begin<S> ::type iter_0; |
| 413 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 414 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 415 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 416 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 417 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 418 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 419 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 420 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 421 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 422 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 423 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 424 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 425 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 426 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 427 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 428 | typedef typename mpl::next< iter_15 > ::type iter_16; |
| 429 | typedef typename mpl::next< iter_16 > ::type iter_17; |
| 430 | typedef typename mpl::next< iter_17 > ::type iter_18; |
| 431 | typedef typename mpl::next< iter_18 > ::type iter_19; |
| 432 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 433 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,19) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 434 | < typename mpl::deref< iter_0 > ::type |
| 435 | , typename mpl::deref< iter_1 > ::type |
| 436 | , typename mpl::deref< iter_2 > ::type |
| 437 | , typename mpl::deref< iter_3 > ::type |
| 438 | , typename mpl::deref< iter_4 > ::type |
| 439 | , typename mpl::deref< iter_5 > ::type |
| 440 | , typename mpl::deref< iter_6 > ::type |
| 441 | , typename mpl::deref< iter_7 > ::type |
| 442 | , typename mpl::deref< iter_8 > ::type |
| 443 | , typename mpl::deref< iter_9 > ::type |
| 444 | , typename mpl::deref< iter_10 > ::type |
| 445 | , typename mpl::deref< iter_11 > ::type |
| 446 | , typename mpl::deref< iter_12 > ::type |
| 447 | , typename mpl::deref< iter_13 > ::type |
| 448 | , typename mpl::deref< iter_14 > ::type |
| 449 | , typename mpl::deref< iter_15 > ::type |
| 450 | , typename mpl::deref< iter_16 > ::type |
| 451 | , typename mpl::deref< iter_17 > ::type |
| 452 | , typename mpl::deref< iter_18 > ::type |
| 453 | , typename mpl::deref< iter_19 > ::type |
| 454 | > ::type type; |
| 455 | }; |
| 456 | }; |
| 457 | template< typename R , typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9 , typename T10 , typename T11 , typename T12 , typename T13 , typename T14 , typename T15 , typename T16 , typename T17 , typename T18 , typename T19 > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 458 | struct NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 459 | { |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 460 | typedef NDNBOOST_FT_syntax(NDNBOOST_FT_cc,type NDNBOOST_PP_EMPTY) (T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 NDNBOOST_FT_ell) NDNBOOST_FT_cv ; |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 461 | }; |
| 462 | template< > |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 463 | struct synthesize_impl_o< NDNBOOST_FT_flags, NDNBOOST_FT_cc_id, 21 > |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 464 | { |
| 465 | template<typename S> struct synthesize_impl_i |
| 466 | { |
| 467 | private: |
| 468 | typedef typename mpl::begin<S> ::type iter_0; |
| 469 | typedef typename mpl::next< iter_0 > ::type iter_1; |
| 470 | typedef typename mpl::next< iter_1 > ::type iter_2; |
| 471 | typedef typename mpl::next< iter_2 > ::type iter_3; |
| 472 | typedef typename mpl::next< iter_3 > ::type iter_4; |
| 473 | typedef typename mpl::next< iter_4 > ::type iter_5; |
| 474 | typedef typename mpl::next< iter_5 > ::type iter_6; |
| 475 | typedef typename mpl::next< iter_6 > ::type iter_7; |
| 476 | typedef typename mpl::next< iter_7 > ::type iter_8; |
| 477 | typedef typename mpl::next< iter_8 > ::type iter_9; |
| 478 | typedef typename mpl::next< iter_9 > ::type iter_10; |
| 479 | typedef typename mpl::next< iter_10 > ::type iter_11; |
| 480 | typedef typename mpl::next< iter_11 > ::type iter_12; |
| 481 | typedef typename mpl::next< iter_12 > ::type iter_13; |
| 482 | typedef typename mpl::next< iter_13 > ::type iter_14; |
| 483 | typedef typename mpl::next< iter_14 > ::type iter_15; |
| 484 | typedef typename mpl::next< iter_15 > ::type iter_16; |
| 485 | typedef typename mpl::next< iter_16 > ::type iter_17; |
| 486 | typedef typename mpl::next< iter_17 > ::type iter_18; |
| 487 | typedef typename mpl::next< iter_18 > ::type iter_19; |
| 488 | typedef typename mpl::next< iter_19 > ::type iter_20; |
| 489 | public: |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 490 | typedef typename detail::NDNBOOST_FT_make_type(NDNBOOST_FT_flags,NDNBOOST_FT_cc_id,20) |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 491 | < typename mpl::deref< iter_0 > ::type |
| 492 | , typename mpl::deref< iter_1 > ::type |
| 493 | , typename mpl::deref< iter_2 > ::type |
| 494 | , typename mpl::deref< iter_3 > ::type |
| 495 | , typename mpl::deref< iter_4 > ::type |
| 496 | , typename mpl::deref< iter_5 > ::type |
| 497 | , typename mpl::deref< iter_6 > ::type |
| 498 | , typename mpl::deref< iter_7 > ::type |
| 499 | , typename mpl::deref< iter_8 > ::type |
| 500 | , typename mpl::deref< iter_9 > ::type |
| 501 | , typename mpl::deref< iter_10 > ::type |
| 502 | , typename mpl::deref< iter_11 > ::type |
| 503 | , typename mpl::deref< iter_12 > ::type |
| 504 | , typename mpl::deref< iter_13 > ::type |
| 505 | , typename mpl::deref< iter_14 > ::type |
| 506 | , typename mpl::deref< iter_15 > ::type |
| 507 | , typename mpl::deref< iter_16 > ::type |
| 508 | , typename mpl::deref< iter_17 > ::type |
| 509 | , typename mpl::deref< iter_18 > ::type |
| 510 | , typename mpl::deref< iter_19 > ::type |
| 511 | , typename mpl::deref< iter_20 > ::type |
| 512 | > ::type type; |
| 513 | }; |
| 514 | }; |
Jeff Thompson | 3d613fd | 2013-10-15 15:39:04 -0700 | [diff] [blame^] | 515 | # undef NDNBOOST_FT_make_type |
| 516 | # undef NDNBOOST_FT_make_type_impl |
Jeff Thompson | a28eed8 | 2013-08-22 16:21:10 -0700 | [diff] [blame] | 517 | |