From 4e6d72780379413c74092c3e6f1078b5a34c031a Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sun, 15 Sep 2002 22:13:24 +0000 Subject: [PATCH] Bring MPL v2 to the main trunk [SVN r15347] --- include/boost/mpl/O1_size.hpp | 41 + include/boost/mpl/O1_size_fwd.hpp | 29 + include/boost/mpl/advance.hpp | 179 ++ include/boost/mpl/alias.hpp | 24 + include/boost/mpl/always.hpp | 61 + include/boost/mpl/apply_if.hpp | 64 + include/boost/mpl/arg.hpp | 138 ++ include/boost/mpl/arg_fwd.hpp | 28 + include/boost/mpl/arithmetic.hpp | 27 + include/boost/mpl/arithmetic/divides.hpp | 76 + include/boost/mpl/arithmetic/minus.hpp | 68 + include/boost/mpl/arithmetic/modulus.hpp | 70 + include/boost/mpl/arithmetic/multiplies.hpp | 68 + include/boost/mpl/arithmetic/negate.hpp | 47 + include/boost/mpl/arithmetic/plus.hpp | 68 + include/boost/mpl/assert_is_same.hpp | 46 + include/boost/mpl/at.hpp | 56 + include/boost/mpl/at_fwd.hpp | 29 + include/boost/mpl/aux_/O1_size_impl.hpp | 72 + include/boost/mpl/aux_/advance_backward.hpp | 118 + include/boost/mpl/aux_/advance_forward.hpp | 118 + include/boost/mpl/aux_/apply.hpp | 66 + include/boost/mpl/aux_/apply_1st.hpp | 42 + include/boost/mpl/aux_/arity.hpp | 45 + include/boost/mpl/aux_/at_impl.hpp | 50 + include/boost/mpl/aux_/back_impl.hpp | 53 + include/boost/mpl/aux_/begin_end_impl.hpp | 73 + include/boost/mpl/aux_/bool_value_wknd.hpp | 48 + include/boost/mpl/aux_/clear_impl.hpp | 39 + include/boost/mpl/aux_/config/bind.hpp | 13 + include/boost/mpl/aux_/config/compiler.hpp | 41 + .../boost/mpl/aux_/config/dependent_nttp.hpp | 30 + include/boost/mpl/aux_/config/dtp.hpp | 29 + include/boost/mpl/aux_/config/eti.hpp | 27 + include/boost/mpl/aux_/config/internals.hpp | 26 + .../boost/mpl/aux_/config/lambda_support.hpp | 33 + .../boost/mpl/aux_/config/msvc_typename.hpp | 28 + .../mpl/aux_/config/overload_resolution.hpp | 24 + include/boost/mpl/aux_/config/ttp.hpp | 30 + .../mpl/aux_/config/use_preprocessed.hpp | 22 + include/boost/mpl/aux_/config/vector.hpp | 28 + include/boost/mpl/aux_/copy_if_op.hpp | 53 + include/boost/mpl/aux_/copy_op.hpp | 50 + include/boost/mpl/aux_/count_args.hpp | 103 + include/boost/mpl/aux_/debug_print.hpp | 39 + include/boost/mpl/aux_/deref_wknd.hpp | 47 + include/boost/mpl/aux_/empty_impl.hpp | 48 + include/boost/mpl/aux_/erase_impl.hpp | 74 + include/boost/mpl/aux_/fold_backward_impl.hpp | 46 + .../mpl/aux_/fold_backward_impl_body.hpp | 406 ++++ include/boost/mpl/aux_/fold_impl.hpp | 45 + include/boost/mpl/aux_/fold_impl_body.hpp | 365 +++ include/boost/mpl/aux_/fold_op.hpp | 44 + include/boost/mpl/aux_/fold_pred.hpp | 44 + include/boost/mpl/aux_/front_impl.hpp | 46 + include/boost/mpl/aux_/full_lambda.hpp | 364 +++ include/boost/mpl/aux_/has_rebind.hpp | 114 + include/boost/mpl/aux_/has_size.hpp | 63 + .../boost/mpl/aux_/include_preprocessed.hpp | 39 + include/boost/mpl/aux_/insert_impl.hpp | 73 + include/boost/mpl/aux_/insert_range_impl.hpp | 85 + include/boost/mpl/aux_/iter_apply.hpp | 53 + include/boost/mpl/aux_/iter_distance.hpp | 62 + .../mpl/aux_/iter_fold_backward_impl.hpp | 46 + include/boost/mpl/aux_/iter_fold_if_impl.hpp | 217 ++ include/boost/mpl/aux_/iter_fold_impl.hpp | 46 + include/boost/mpl/aux_/iter_push_front.hpp | 42 + include/boost/mpl/aux_/iterator_category.hpp | 33 + include/boost/mpl/aux_/iterator_names.hpp | 30 + include/boost/mpl/aux_/lambda_arity_param.hpp | 28 + include/boost/mpl/aux_/lambda_expr.hpp | 30 + include/boost/mpl/aux_/lambda_no_ctps.hpp | 134 ++ include/boost/mpl/aux_/lambda_spec.hpp | 46 + include/boost/mpl/aux_/lambda_support.hpp | 57 + include/boost/mpl/aux_/metafunction.hpp | 24 + include/boost/mpl/aux_/msvc_dtw.hpp | 56 + include/boost/mpl/aux_/msvc_never_true.hpp | 40 + include/boost/mpl/aux_/nested_type_wknd.hpp | 40 + include/boost/mpl/aux_/next.hpp | 34 + include/boost/mpl/aux_/pop_back_impl.hpp | 39 + include/boost/mpl/aux_/pop_front_impl.hpp | 39 + include/boost/mpl/aux_/pred.hpp | 39 + .../preprocessed/bcc/advance_backward.hpp | 83 + .../aux_/preprocessed/bcc/advance_forward.hpp | 83 + .../boost/mpl/aux_/preprocessed/bcc/apply.hpp | 532 +++++ .../boost/mpl/aux_/preprocessed/bcc/arg.hpp | 131 ++ .../boost/mpl/aux_/preprocessed/bcc/at.hpp | 0 .../mpl/aux_/preprocessed/bcc/basic_bind.hpp | 459 ++++ .../boost/mpl/aux_/preprocessed/bcc/bind.hpp | 556 +++++ .../preprocessed/bcc/fold_backward_impl.hpp | 222 ++ .../mpl/aux_/preprocessed/bcc/fold_impl.hpp | 56 + .../mpl/aux_/preprocessed/bcc/full_lambda.hpp | 579 +++++ .../bcc/iter_fold_backward_impl.hpp | 222 ++ .../preprocessed/bcc/iter_fold_if_impl.hpp | 129 ++ .../aux_/preprocessed/bcc/iter_fold_impl.hpp | 56 + .../aux_/preprocessed/bcc/lambda_helper.hpp | 120 + .../aux_/preprocessed/bcc/lambda_no_ctps.hpp | 158 ++ .../boost/mpl/aux_/preprocessed/bcc/list.hpp | 129 ++ .../mpl/aux_/preprocessed/bcc/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/bcc/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/bcc/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/bcc/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/bcc/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/bcc/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/bcc/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/bcc/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/bcc/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/bcc/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/bcc/list_c.hpp | 151 ++ .../aux_/preprocessed/bcc/lite_vector10.hpp | 134 ++ .../aux_/preprocessed/bcc/lite_vector10_c.hpp | 139 ++ .../aux_/preprocessed/bcc/lite_vector20.hpp | 154 ++ .../aux_/preprocessed/bcc/lite_vector20_c.hpp | 148 ++ .../aux_/preprocessed/bcc/lite_vector30.hpp | 174 ++ .../aux_/preprocessed/bcc/lite_vector30_c.hpp | 158 ++ .../aux_/preprocessed/bcc/lite_vector40.hpp | 194 ++ .../aux_/preprocessed/bcc/lite_vector40_c.hpp | 168 ++ .../aux_/preprocessed/bcc/lite_vector50.hpp | 214 ++ .../aux_/preprocessed/bcc/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/bcc/meta_fun.hpp | 3 + .../mpl/aux_/preprocessed/bcc/placeholder.hpp | 59 + .../mpl/aux_/preprocessed/bcc/vector.hpp | 129 ++ .../mpl/aux_/preprocessed/bcc/vector10.hpp | 553 +++++ .../mpl/aux_/preprocessed/bcc/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/bcc/vector20.hpp | 769 +++++++ .../mpl/aux_/preprocessed/bcc/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/bcc/vector30.hpp | 989 ++++++++ .../mpl/aux_/preprocessed/bcc/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/bcc/vector40.hpp | 1209 ++++++++++ .../mpl/aux_/preprocessed/bcc/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/bcc/vector50.hpp | 1429 ++++++++++++ .../mpl/aux_/preprocessed/bcc/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/bcc/vector_c.hpp | 153 ++ .../preprocessed/gcc/advance_backward.hpp | 83 + .../aux_/preprocessed/gcc/advance_forward.hpp | 83 + .../boost/mpl/aux_/preprocessed/gcc/apply.hpp | 121 + .../boost/mpl/aux_/preprocessed/gcc/arg.hpp | 116 + .../boost/mpl/aux_/preprocessed/gcc/at.hpp | 0 .../mpl/aux_/preprocessed/gcc/basic_bind.hpp | 377 ++++ .../boost/mpl/aux_/preprocessed/gcc/bind.hpp | 474 ++++ .../preprocessed/gcc/fold_backward_impl.hpp | 223 ++ .../mpl/aux_/preprocessed/gcc/fold_impl.hpp | 177 ++ .../mpl/aux_/preprocessed/gcc/full_lambda.hpp | 748 +++++++ .../gcc/iter_fold_backward_impl.hpp | 222 ++ .../preprocessed/gcc/iter_fold_if_impl.hpp | 129 ++ .../aux_/preprocessed/gcc/iter_fold_impl.hpp | 176 ++ .../aux_/preprocessed/gcc/lambda_helper.hpp | 120 + .../aux_/preprocessed/gcc/lambda_no_ctps.hpp | 158 ++ .../boost/mpl/aux_/preprocessed/gcc/list.hpp | 129 ++ .../mpl/aux_/preprocessed/gcc/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/gcc/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/gcc/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/gcc/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/gcc/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/gcc/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/gcc/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/gcc/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/gcc/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/gcc/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/gcc/list_c.hpp | 151 ++ .../aux_/preprocessed/gcc/lite_vector10.hpp | 134 ++ .../aux_/preprocessed/gcc/lite_vector10_c.hpp | 139 ++ .../aux_/preprocessed/gcc/lite_vector20.hpp | 154 ++ .../aux_/preprocessed/gcc/lite_vector20_c.hpp | 148 ++ .../aux_/preprocessed/gcc/lite_vector30.hpp | 174 ++ .../aux_/preprocessed/gcc/lite_vector30_c.hpp | 158 ++ .../aux_/preprocessed/gcc/lite_vector40.hpp | 194 ++ .../aux_/preprocessed/gcc/lite_vector40_c.hpp | 168 ++ .../aux_/preprocessed/gcc/lite_vector50.hpp | 214 ++ .../aux_/preprocessed/gcc/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/gcc/meta_fun.hpp | 75 + .../mpl/aux_/preprocessed/gcc/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/gcc/vector.hpp | 129 ++ .../mpl/aux_/preprocessed/gcc/vector10.hpp | 553 +++++ .../mpl/aux_/preprocessed/gcc/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/gcc/vector20.hpp | 769 +++++++ .../mpl/aux_/preprocessed/gcc/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/gcc/vector30.hpp | 989 ++++++++ .../mpl/aux_/preprocessed/gcc/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/gcc/vector40.hpp | 1209 ++++++++++ .../mpl/aux_/preprocessed/gcc/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/gcc/vector50.hpp | 1429 ++++++++++++ .../mpl/aux_/preprocessed/gcc/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/gcc/vector_c.hpp | 153 ++ .../preprocessed/msvc60/advance_backward.hpp | 93 + .../preprocessed/msvc60/advance_forward.hpp | 93 + .../mpl/aux_/preprocessed/msvc60/apply.hpp | 311 +++ .../mpl/aux_/preprocessed/msvc60/arg.hpp | 123 + .../boost/mpl/aux_/preprocessed/msvc60/at.hpp | 0 .../aux_/preprocessed/msvc60/basic_bind.hpp | 447 ++++ .../mpl/aux_/preprocessed/msvc60/bind.hpp | 557 +++++ .../msvc60/fold_backward_impl.hpp | 327 +++ .../aux_/preprocessed/msvc60/fold_impl.hpp | 282 +++ .../aux_/preprocessed/msvc60/full_lambda.hpp | 579 +++++ .../msvc60/iter_fold_backward_impl.hpp | 327 +++ .../preprocessed/msvc60/iter_fold_if_impl.hpp | 129 ++ .../preprocessed/msvc60/iter_fold_impl.hpp | 282 +++ .../preprocessed/msvc60/lambda_helper.hpp | 120 + .../preprocessed/msvc60/lambda_no_ctps.hpp | 158 ++ .../mpl/aux_/preprocessed/msvc60/list.hpp | 278 +++ .../mpl/aux_/preprocessed/msvc60/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/msvc60/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/msvc60/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/msvc60/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/msvc60/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/msvc60/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/msvc60/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/msvc60/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/msvc60/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/msvc60/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/msvc60/list_c.hpp | 291 +++ .../preprocessed/msvc60/lite_vector10.hpp | 134 ++ .../preprocessed/msvc60/lite_vector10_c.hpp | 139 ++ .../preprocessed/msvc60/lite_vector20.hpp | 154 ++ .../preprocessed/msvc60/lite_vector20_c.hpp | 148 ++ .../preprocessed/msvc60/lite_vector30.hpp | 174 ++ .../preprocessed/msvc60/lite_vector30_c.hpp | 158 ++ .../preprocessed/msvc60/lite_vector40.hpp | 194 ++ .../preprocessed/msvc60/lite_vector40_c.hpp | 168 ++ .../preprocessed/msvc60/lite_vector50.hpp | 214 ++ .../preprocessed/msvc60/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/msvc60/meta_fun.hpp | 3 + .../aux_/preprocessed/msvc60/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/msvc60/vector.hpp | 278 +++ .../mpl/aux_/preprocessed/msvc60/vector10.hpp | 1131 ++++++++++ .../aux_/preprocessed/msvc60/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/msvc60/vector20.hpp | 1319 +++++++++++ .../aux_/preprocessed/msvc60/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/msvc60/vector30.hpp | 1539 +++++++++++++ .../aux_/preprocessed/msvc60/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/msvc60/vector40.hpp | 1759 +++++++++++++++ .../aux_/preprocessed/msvc60/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/msvc60/vector50.hpp | 1979 +++++++++++++++++ .../aux_/preprocessed/msvc60/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/msvc60/vector_c.hpp | 291 +++ .../preprocessed/msvc70/advance_backward.hpp | 83 + .../preprocessed/msvc70/advance_forward.hpp | 83 + .../mpl/aux_/preprocessed/msvc70/apply.hpp | 302 +++ .../mpl/aux_/preprocessed/msvc70/arg.hpp | 123 + .../aux_/preprocessed/msvc70/basic_bind.hpp | 447 ++++ .../mpl/aux_/preprocessed/msvc70/bind.hpp | 557 +++++ .../msvc70/fold_backward_impl.hpp | 292 +++ .../aux_/preprocessed/msvc70/fold_impl.hpp | 247 ++ .../aux_/preprocessed/msvc70/full_lambda.hpp | 579 +++++ .../msvc70/iter_fold_backward_impl.hpp | 291 +++ .../preprocessed/msvc70/iter_fold_if_impl.hpp | 129 ++ .../preprocessed/msvc70/iter_fold_impl.hpp | 246 ++ .../preprocessed/msvc70/lambda_helper.hpp | 120 + .../preprocessed/msvc70/lambda_no_ctps.hpp | 158 ++ .../mpl/aux_/preprocessed/msvc70/list.hpp | 278 +++ .../mpl/aux_/preprocessed/msvc70/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/msvc70/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/msvc70/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/msvc70/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/msvc70/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/msvc70/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/msvc70/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/msvc70/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/msvc70/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/msvc70/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/msvc70/list_c.hpp | 291 +++ .../preprocessed/msvc70/lite_vector10.hpp | 134 ++ .../preprocessed/msvc70/lite_vector10_c.hpp | 139 ++ .../preprocessed/msvc70/lite_vector20.hpp | 154 ++ .../preprocessed/msvc70/lite_vector20_c.hpp | 148 ++ .../preprocessed/msvc70/lite_vector30.hpp | 174 ++ .../preprocessed/msvc70/lite_vector30_c.hpp | 158 ++ .../preprocessed/msvc70/lite_vector40.hpp | 194 ++ .../preprocessed/msvc70/lite_vector40_c.hpp | 168 ++ .../preprocessed/msvc70/lite_vector50.hpp | 214 ++ .../preprocessed/msvc70/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/msvc70/meta_fun.hpp | 75 + .../aux_/preprocessed/msvc70/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/msvc70/vector.hpp | 278 +++ .../mpl/aux_/preprocessed/msvc70/vector10.hpp | 1131 ++++++++++ .../aux_/preprocessed/msvc70/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/msvc70/vector20.hpp | 1319 +++++++++++ .../aux_/preprocessed/msvc70/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/msvc70/vector30.hpp | 1539 +++++++++++++ .../aux_/preprocessed/msvc70/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/msvc70/vector40.hpp | 1759 +++++++++++++++ .../aux_/preprocessed/msvc70/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/msvc70/vector50.hpp | 1979 +++++++++++++++++ .../aux_/preprocessed/msvc70/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/msvc70/vector_c.hpp | 291 +++ .../preprocessed/mwcw/advance_backward.hpp | 83 + .../preprocessed/mwcw/advance_forward.hpp | 83 + .../mpl/aux_/preprocessed/mwcw/apply.hpp | 452 ++++ .../boost/mpl/aux_/preprocessed/mwcw/arg.hpp | 124 ++ .../mpl/aux_/preprocessed/mwcw/basic_bind.hpp | 459 ++++ .../boost/mpl/aux_/preprocessed/mwcw/bind.hpp | 556 +++++ .../preprocessed/mwcw/fold_backward_impl.hpp | 222 ++ .../mpl/aux_/preprocessed/mwcw/fold_impl.hpp | 176 ++ .../aux_/preprocessed/mwcw/full_lambda.hpp | 579 +++++ .../mwcw/iter_fold_backward_impl.hpp | 222 ++ .../preprocessed/mwcw/iter_fold_if_impl.hpp | 129 ++ .../aux_/preprocessed/mwcw/iter_fold_impl.hpp | 176 ++ .../aux_/preprocessed/mwcw/lambda_helper.hpp | 120 + .../aux_/preprocessed/mwcw/lambda_no_ctps.hpp | 158 ++ .../boost/mpl/aux_/preprocessed/mwcw/list.hpp | 129 ++ .../mpl/aux_/preprocessed/mwcw/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/mwcw/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/mwcw/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/mwcw/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/mwcw/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/mwcw/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/mwcw/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/mwcw/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/mwcw/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/mwcw/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/mwcw/list_c.hpp | 151 ++ .../aux_/preprocessed/mwcw/lite_vector10.hpp | 134 ++ .../preprocessed/mwcw/lite_vector10_c.hpp | 139 ++ .../aux_/preprocessed/mwcw/lite_vector20.hpp | 154 ++ .../preprocessed/mwcw/lite_vector20_c.hpp | 148 ++ .../aux_/preprocessed/mwcw/lite_vector30.hpp | 174 ++ .../preprocessed/mwcw/lite_vector30_c.hpp | 158 ++ .../aux_/preprocessed/mwcw/lite_vector40.hpp | 194 ++ .../preprocessed/mwcw/lite_vector40_c.hpp | 168 ++ .../aux_/preprocessed/mwcw/lite_vector50.hpp | 214 ++ .../preprocessed/mwcw/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/mwcw/meta_fun.hpp | 75 + .../aux_/preprocessed/mwcw/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/mwcw/vector.hpp | 129 ++ .../mpl/aux_/preprocessed/mwcw/vector10.hpp | 553 +++++ .../mpl/aux_/preprocessed/mwcw/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/mwcw/vector20.hpp | 769 +++++++ .../mpl/aux_/preprocessed/mwcw/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/mwcw/vector30.hpp | 989 ++++++++ .../mpl/aux_/preprocessed/mwcw/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/mwcw/vector40.hpp | 1209 ++++++++++ .../mpl/aux_/preprocessed/mwcw/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/mwcw/vector50.hpp | 1429 ++++++++++++ .../mpl/aux_/preprocessed/mwcw/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/mwcw/vector_c.hpp | 153 ++ .../preprocessed/no_ctps/advance_backward.hpp | 83 + .../preprocessed/no_ctps/advance_forward.hpp | 83 + .../mpl/aux_/preprocessed/no_ctps/apply.hpp | 302 +++ .../mpl/aux_/preprocessed/no_ctps/arg.hpp | 123 + .../mpl/aux_/preprocessed/no_ctps/at.hpp | 0 .../aux_/preprocessed/no_ctps/basic_bind.hpp | 447 ++++ .../mpl/aux_/preprocessed/no_ctps/bind.hpp | 551 +++++ .../no_ctps/fold_backward_impl.hpp | 292 +++ .../aux_/preprocessed/no_ctps/fold_impl.hpp | 247 ++ .../aux_/preprocessed/no_ctps/full_lambda.hpp | 579 +++++ .../no_ctps/iter_fold_backward_impl.hpp | 291 +++ .../no_ctps/iter_fold_if_impl.hpp | 129 ++ .../preprocessed/no_ctps/iter_fold_impl.hpp | 246 ++ .../preprocessed/no_ctps/lambda_helper.hpp | 120 + .../preprocessed/no_ctps/lambda_no_ctps.hpp | 158 ++ .../mpl/aux_/preprocessed/no_ctps/list.hpp | 278 +++ .../mpl/aux_/preprocessed/no_ctps/list10.hpp | 144 ++ .../aux_/preprocessed/no_ctps/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/no_ctps/list20.hpp | 164 ++ .../aux_/preprocessed/no_ctps/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/no_ctps/list30.hpp | 184 ++ .../aux_/preprocessed/no_ctps/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/no_ctps/list40.hpp | 204 ++ .../aux_/preprocessed/no_ctps/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/no_ctps/list50.hpp | 224 ++ .../aux_/preprocessed/no_ctps/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/no_ctps/list_c.hpp | 291 +++ .../preprocessed/no_ctps/lite_vector10.hpp | 134 ++ .../preprocessed/no_ctps/lite_vector10_c.hpp | 139 ++ .../preprocessed/no_ctps/lite_vector20.hpp | 154 ++ .../preprocessed/no_ctps/lite_vector20_c.hpp | 148 ++ .../preprocessed/no_ctps/lite_vector30.hpp | 174 ++ .../preprocessed/no_ctps/lite_vector30_c.hpp | 158 ++ .../preprocessed/no_ctps/lite_vector40.hpp | 194 ++ .../preprocessed/no_ctps/lite_vector40_c.hpp | 168 ++ .../preprocessed/no_ctps/lite_vector50.hpp | 214 ++ .../preprocessed/no_ctps/lite_vector50_c.hpp | 178 ++ .../aux_/preprocessed/no_ctps/meta_fun.hpp | 75 + .../aux_/preprocessed/no_ctps/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/no_ctps/vector.hpp | 278 +++ .../aux_/preprocessed/no_ctps/vector10.hpp | 1131 ++++++++++ .../aux_/preprocessed/no_ctps/vector10_c.hpp | 125 ++ .../aux_/preprocessed/no_ctps/vector20.hpp | 1319 +++++++++++ .../aux_/preprocessed/no_ctps/vector20_c.hpp | 173 ++ .../aux_/preprocessed/no_ctps/vector30.hpp | 1539 +++++++++++++ .../aux_/preprocessed/no_ctps/vector30_c.hpp | 216 ++ .../aux_/preprocessed/no_ctps/vector40.hpp | 1759 +++++++++++++++ .../aux_/preprocessed/no_ctps/vector40_c.hpp | 260 +++ .../aux_/preprocessed/no_ctps/vector50.hpp | 1979 +++++++++++++++++ .../aux_/preprocessed/no_ctps/vector50_c.hpp | 303 +++ .../aux_/preprocessed/no_ctps/vector_c.hpp | 291 +++ .../preprocessed/plain/advance_backward.hpp | 83 + .../preprocessed/plain/advance_forward.hpp | 83 + .../mpl/aux_/preprocessed/plain/apply.hpp | 121 + .../boost/mpl/aux_/preprocessed/plain/arg.hpp | 116 + .../boost/mpl/aux_/preprocessed/plain/at.hpp | 0 .../aux_/preprocessed/plain/basic_bind.hpp | 377 ++++ .../mpl/aux_/preprocessed/plain/bind.hpp | 474 ++++ .../preprocessed/plain/fold_backward_impl.hpp | 223 ++ .../mpl/aux_/preprocessed/plain/fold_impl.hpp | 177 ++ .../aux_/preprocessed/plain/full_lambda.hpp | 579 +++++ .../plain/iter_fold_backward_impl.hpp | 222 ++ .../preprocessed/plain/iter_fold_if_impl.hpp | 129 ++ .../preprocessed/plain/iter_fold_impl.hpp | 176 ++ .../aux_/preprocessed/plain/lambda_helper.hpp | 120 + .../preprocessed/plain/lambda_no_ctps.hpp | 158 ++ .../mpl/aux_/preprocessed/plain/list.hpp | 129 ++ .../mpl/aux_/preprocessed/plain/list10.hpp | 144 ++ .../mpl/aux_/preprocessed/plain/list10_c.hpp | 149 ++ .../mpl/aux_/preprocessed/plain/list20.hpp | 164 ++ .../mpl/aux_/preprocessed/plain/list20_c.hpp | 158 ++ .../mpl/aux_/preprocessed/plain/list30.hpp | 184 ++ .../mpl/aux_/preprocessed/plain/list30_c.hpp | 168 ++ .../mpl/aux_/preprocessed/plain/list40.hpp | 204 ++ .../mpl/aux_/preprocessed/plain/list40_c.hpp | 178 ++ .../mpl/aux_/preprocessed/plain/list50.hpp | 224 ++ .../mpl/aux_/preprocessed/plain/list50_c.hpp | 188 ++ .../mpl/aux_/preprocessed/plain/list_c.hpp | 151 ++ .../aux_/preprocessed/plain/lite_vector10.hpp | 134 ++ .../preprocessed/plain/lite_vector10_c.hpp | 139 ++ .../aux_/preprocessed/plain/lite_vector20.hpp | 154 ++ .../preprocessed/plain/lite_vector20_c.hpp | 148 ++ .../aux_/preprocessed/plain/lite_vector30.hpp | 174 ++ .../preprocessed/plain/lite_vector30_c.hpp | 158 ++ .../aux_/preprocessed/plain/lite_vector40.hpp | 194 ++ .../preprocessed/plain/lite_vector40_c.hpp | 168 ++ .../aux_/preprocessed/plain/lite_vector50.hpp | 214 ++ .../preprocessed/plain/lite_vector50_c.hpp | 178 ++ .../mpl/aux_/preprocessed/plain/meta_fun.hpp | 75 + .../aux_/preprocessed/plain/placeholder.hpp | 57 + .../mpl/aux_/preprocessed/plain/vector.hpp | 129 ++ .../mpl/aux_/preprocessed/plain/vector10.hpp | 553 +++++ .../aux_/preprocessed/plain/vector10_c.hpp | 125 ++ .../mpl/aux_/preprocessed/plain/vector20.hpp | 769 +++++++ .../aux_/preprocessed/plain/vector20_c.hpp | 173 ++ .../mpl/aux_/preprocessed/plain/vector30.hpp | 989 ++++++++ .../aux_/preprocessed/plain/vector30_c.hpp | 216 ++ .../mpl/aux_/preprocessed/plain/vector40.hpp | 1209 ++++++++++ .../aux_/preprocessed/plain/vector40_c.hpp | 260 +++ .../mpl/aux_/preprocessed/plain/vector50.hpp | 1429 ++++++++++++ .../aux_/preprocessed/plain/vector50_c.hpp | 303 +++ .../mpl/aux_/preprocessed/plain/vector_c.hpp | 153 ++ include/boost/mpl/aux_/preprocessor/add.hpp | 53 + .../mpl/aux_/preprocessor/def_params_tail.hpp | 82 + .../mpl/aux_/preprocessor/default_params.hpp | 68 + include/boost/mpl/aux_/preprocessor/enum.hpp | 63 + .../mpl/aux_/preprocessor/ext_params.hpp | 79 + .../mpl/aux_/preprocessor/filter_params.hpp | 31 + .../boost/mpl/aux_/preprocessor/params.hpp | 66 + .../mpl/aux_/preprocessor/project1st.hpp | 24 + .../boost/mpl/aux_/preprocessor/repeat.hpp | 50 + include/boost/mpl/aux_/preprocessor/sub.hpp | 53 + include/boost/mpl/aux_/preprocessor/tuple.hpp | 32 + include/boost/mpl/aux_/prior.hpp | 34 + include/boost/mpl/aux_/push_back_impl.hpp | 40 + include/boost/mpl/aux_/push_front_impl.hpp | 39 + include/boost/mpl/aux_/range_c/O1_size.hpp | 36 + include/boost/mpl/aux_/range_c/back.hpp | 39 + include/boost/mpl/aux_/range_c/begin_end.hpp | 49 + include/boost/mpl/aux_/range_c/empty.hpp | 42 + include/boost/mpl/aux_/range_c/front.hpp | 38 + include/boost/mpl/aux_/range_c/iterator.hpp | 55 + include/boost/mpl/aux_/range_c/size.hpp | 42 + include/boost/mpl/aux_/range_c/tag.hpp | 30 + include/boost/mpl/aux_/sequence_tag.hpp | 34 + include/boost/mpl/aux_/size_impl.hpp | 48 + include/boost/mpl/aux_/template_arity.hpp | 80 + include/boost/mpl/aux_/template_arity_fwd.hpp | 30 + include/boost/mpl/aux_/traits_lambda_spec.hpp | 41 + include/boost/mpl/aux_/type_wrapper.hpp | 33 + include/boost/mpl/aux_/typeof.hpp | 75 + include/boost/mpl/aux_/value_wknd.hpp | 40 + include/boost/mpl/aux_/void_spec.hpp | 112 + include/boost/mpl/aux_/yes_no.hpp | 31 + include/boost/mpl/back.hpp | 44 + include/boost/mpl/back_fwd.hpp | 29 + include/boost/mpl/begin_end.hpp | 60 + include/boost/mpl/begin_end_fwd.hpp | 32 + include/boost/mpl/bind.hpp | 542 +++++ include/boost/mpl/bool_c.hpp | 40 + include/boost/mpl/clear.hpp | 44 + include/boost/mpl/clear_fwd.hpp | 29 + include/boost/mpl/comparison.hpp | 27 + include/boost/mpl/comparison/equal_to.hpp | 72 + include/boost/mpl/comparison/greater.hpp | 72 + .../boost/mpl/comparison/greater_equal.hpp | 67 + include/boost/mpl/comparison/less.hpp | 72 + include/boost/mpl/comparison/less_equal.hpp | 72 + include/boost/mpl/comparison/not_equal_to.hpp | 72 + include/boost/mpl/compose.hpp | 27 + include/boost/mpl/compose/f_gx.hpp | 61 + include/boost/mpl/compose/f_gx_hx.hpp | 64 + include/boost/mpl/compose/f_gx_hy.hpp | 65 + include/boost/mpl/compose/f_gxy.hpp | 75 + include/boost/mpl/compose/f_x_hy.hpp | 62 + include/boost/mpl/compose/f_x_x.hpp | 55 + include/boost/mpl/contains.hpp | 48 + include/boost/mpl/copy.hpp | 41 + include/boost/mpl/copy_backward.hpp | 41 + include/boost/mpl/copy_backward_if.hpp | 54 + include/boost/mpl/copy_if.hpp | 54 + include/boost/mpl/count.hpp | 43 + include/boost/mpl/count_if.hpp | 79 + include/boost/mpl/distance.hpp | 119 + include/boost/mpl/empty.hpp | 44 + include/boost/mpl/empty_fwd.hpp | 29 + include/boost/mpl/equal.hpp | 105 + include/boost/mpl/erase.hpp | 60 + include/boost/mpl/erase_fwd.hpp | 29 + include/boost/mpl/filter_view.hpp | 96 + include/boost/mpl/find.hpp | 43 + include/boost/mpl/find_if.hpp | 86 + include/boost/mpl/fold.hpp | 53 + include/boost/mpl/fold_backward.hpp | 55 + include/boost/mpl/for_each.hpp | 102 + include/boost/mpl/front.hpp | 44 + include/boost/mpl/front_fwd.hpp | 29 + include/boost/mpl/identity.hpp | 50 + include/boost/mpl/if.hpp | 159 ++ include/boost/mpl/insert.hpp | 46 + include/boost/mpl/insert_fwd.hpp | 29 + include/boost/mpl/insert_range.hpp | 46 + include/boost/mpl/insert_range_fwd.hpp | 29 + include/boost/mpl/int_c.hpp | 48 + include/boost/mpl/integral_c.hpp | 65 + include/boost/mpl/iter_fold.hpp | 53 + include/boost/mpl/iter_fold_backward.hpp | 60 + include/boost/mpl/iterator_category.hpp | 48 + include/boost/mpl/iterator_range.hpp | 47 + include/boost/mpl/iterator_tag.hpp | 36 + include/boost/mpl/lambda.hpp | 28 + include/boost/mpl/lambda_fwd.hpp | 35 + include/boost/mpl/lambda_helper.hpp | 86 + include/boost/mpl/limits/arity.hpp | 24 + include/boost/mpl/limits/list.hpp | 24 + include/boost/mpl/limits/unrolling.hpp | 24 + include/boost/mpl/limits/vector.hpp | 24 + include/boost/mpl/list.hpp | 217 ++ include/boost/mpl/list/aux_/O1_size.hpp | 38 + include/boost/mpl/list/aux_/begin_end.hpp | 49 + include/boost/mpl/list/aux_/clear.hpp | 39 + include/boost/mpl/list/aux_/empty.hpp | 39 + include/boost/mpl/list/aux_/front.hpp | 38 + include/boost/mpl/list/aux_/iterator.hpp | 46 + include/boost/mpl/list/aux_/node.hpp | 51 + include/boost/mpl/list/aux_/numbered.hpp | 70 + include/boost/mpl/list/aux_/numbered_c.hpp | 72 + include/boost/mpl/list/aux_/pop_front.hpp | 38 + include/boost/mpl/list/aux_/push_front.hpp | 44 + include/boost/mpl/list/aux_/size.hpp | 38 + include/boost/mpl/list/aux_/tag.hpp | 30 + include/boost/mpl/list/list0.hpp | 44 + include/boost/mpl/list/list0_c.hpp | 42 + include/boost/mpl/list/list10.hpp | 48 + include/boost/mpl/list/list10_c.hpp | 48 + include/boost/mpl/list/list20.hpp | 48 + include/boost/mpl/list/list20_c.hpp | 48 + include/boost/mpl/list/list30.hpp | 48 + include/boost/mpl/list/list30_c.hpp | 48 + include/boost/mpl/list/list40.hpp | 48 + include/boost/mpl/list/list40_c.hpp | 48 + include/boost/mpl/list/list50.hpp | 48 + include/boost/mpl/list/list50_c.hpp | 48 + include/boost/mpl/list_c.hpp | 234 ++ include/boost/mpl/logical.hpp | 24 + include/boost/mpl/logical/and.hpp | 127 ++ include/boost/mpl/logical/not.hpp | 55 + include/boost/mpl/logical/or.hpp | 127 ++ include/boost/mpl/lower_bound.hpp | 102 + include/boost/mpl/math/fixed_c.hpp | 41 + include/boost/mpl/math/rational_c.hpp | 42 + include/boost/mpl/max_element.hpp | 77 + include/boost/mpl/meta_fun.hpp | 75 + include/boost/mpl/next.hpp | 48 + include/boost/mpl/pair.hpp | 44 + include/boost/mpl/placeholder.hpp | 83 + include/boost/mpl/pop_back.hpp | 44 + include/boost/mpl/pop_back_fwd.hpp | 29 + include/boost/mpl/pop_front.hpp | 44 + include/boost/mpl/pop_front_fwd.hpp | 29 + include/boost/mpl/prior.hpp | 48 + include/boost/mpl/project1st.hpp | 41 + include/boost/mpl/project2nd.hpp | 41 + include/boost/mpl/protect.hpp | 45 + include/boost/mpl/push_back.hpp | 45 + include/boost/mpl/push_back_fwd.hpp | 29 + include/boost/mpl/push_front.hpp | 45 + include/boost/mpl/push_front_fwd.hpp | 29 + include/boost/mpl/range_c.hpp | 52 + include/boost/mpl/remove.hpp | 41 + include/boost/mpl/remove_if.hpp | 70 + include/boost/mpl/replace.hpp | 42 + include/boost/mpl/replace_if.hpp | 69 + include/boost/mpl/reverse.hpp | 49 + include/boost/mpl/same_as.hpp | 61 + include/boost/mpl/select1st.hpp | 48 + include/boost/mpl/select2nd.hpp | 38 + include/boost/mpl/sequence_tag.hpp | 46 + include/boost/mpl/size.hpp | 44 + include/boost/mpl/size_fwd.hpp | 29 + include/boost/mpl/size_of.hpp | 43 + include/boost/mpl/transform.hpp | 70 + include/boost/mpl/transform_view.hpp | 61 + include/boost/mpl/unique.hpp | 88 + include/boost/mpl/upper_bound.hpp | 103 + include/boost/mpl/vector.hpp | 217 ++ include/boost/mpl/vector/aux_/O1_size.hpp | 60 + include/boost/mpl/vector/aux_/at.hpp | 75 + include/boost/mpl/vector/aux_/back.hpp | 65 + include/boost/mpl/vector/aux_/begin_end.hpp | 61 + include/boost/mpl/vector/aux_/clear.hpp | 60 + include/boost/mpl/vector/aux_/empty.hpp | 70 + include/boost/mpl/vector/aux_/front.hpp | 60 + include/boost/mpl/vector/aux_/item.hpp | 68 + include/boost/mpl/vector/aux_/iterator.hpp | 65 + include/boost/mpl/vector/aux_/node.hpp | 53 + include/boost/mpl/vector/aux_/numbered.hpp | 185 ++ include/boost/mpl/vector/aux_/numbered_c.hpp | 75 + include/boost/mpl/vector/aux_/pop_back.hpp | 44 + include/boost/mpl/vector/aux_/pop_front.hpp | 44 + include/boost/mpl/vector/aux_/push_back.hpp | 45 + include/boost/mpl/vector/aux_/push_front.hpp | 50 + include/boost/mpl/vector/aux_/size.hpp | 60 + include/boost/mpl/vector/aux_/tag.hpp | 36 + include/boost/mpl/vector/aux_/vector0.hpp | 61 + include/boost/mpl/vector/vector0.hpp | 35 + include/boost/mpl/vector/vector0_c.hpp | 34 + include/boost/mpl/vector/vector10.hpp | 54 + include/boost/mpl/vector/vector10_c.hpp | 55 + include/boost/mpl/vector/vector20.hpp | 54 + include/boost/mpl/vector/vector20_c.hpp | 55 + include/boost/mpl/vector/vector30.hpp | 54 + include/boost/mpl/vector/vector30_c.hpp | 55 + include/boost/mpl/vector/vector40.hpp | 54 + include/boost/mpl/vector/vector40_c.hpp | 55 + include/boost/mpl/vector/vector50.hpp | 54 + include/boost/mpl/vector/vector50_c.hpp | 55 + include/boost/mpl/vector_c.hpp | 234 ++ include/boost/mpl/void.hpp | 36 + 634 files changed, 122359 insertions(+) create mode 100644 include/boost/mpl/O1_size.hpp create mode 100644 include/boost/mpl/O1_size_fwd.hpp create mode 100644 include/boost/mpl/advance.hpp create mode 100644 include/boost/mpl/alias.hpp create mode 100644 include/boost/mpl/always.hpp create mode 100644 include/boost/mpl/apply_if.hpp create mode 100644 include/boost/mpl/arg.hpp create mode 100644 include/boost/mpl/arg_fwd.hpp create mode 100644 include/boost/mpl/arithmetic.hpp create mode 100644 include/boost/mpl/arithmetic/divides.hpp create mode 100644 include/boost/mpl/arithmetic/minus.hpp create mode 100644 include/boost/mpl/arithmetic/modulus.hpp create mode 100644 include/boost/mpl/arithmetic/multiplies.hpp create mode 100644 include/boost/mpl/arithmetic/negate.hpp create mode 100644 include/boost/mpl/arithmetic/plus.hpp create mode 100644 include/boost/mpl/assert_is_same.hpp create mode 100644 include/boost/mpl/at.hpp create mode 100644 include/boost/mpl/at_fwd.hpp create mode 100644 include/boost/mpl/aux_/O1_size_impl.hpp create mode 100644 include/boost/mpl/aux_/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/apply.hpp create mode 100644 include/boost/mpl/aux_/apply_1st.hpp create mode 100644 include/boost/mpl/aux_/arity.hpp create mode 100644 include/boost/mpl/aux_/at_impl.hpp create mode 100644 include/boost/mpl/aux_/back_impl.hpp create mode 100644 include/boost/mpl/aux_/begin_end_impl.hpp create mode 100644 include/boost/mpl/aux_/bool_value_wknd.hpp create mode 100644 include/boost/mpl/aux_/clear_impl.hpp create mode 100644 include/boost/mpl/aux_/config/bind.hpp create mode 100644 include/boost/mpl/aux_/config/compiler.hpp create mode 100644 include/boost/mpl/aux_/config/dependent_nttp.hpp create mode 100644 include/boost/mpl/aux_/config/dtp.hpp create mode 100644 include/boost/mpl/aux_/config/eti.hpp create mode 100644 include/boost/mpl/aux_/config/internals.hpp create mode 100644 include/boost/mpl/aux_/config/lambda_support.hpp create mode 100644 include/boost/mpl/aux_/config/msvc_typename.hpp create mode 100644 include/boost/mpl/aux_/config/overload_resolution.hpp create mode 100644 include/boost/mpl/aux_/config/ttp.hpp create mode 100644 include/boost/mpl/aux_/config/use_preprocessed.hpp create mode 100644 include/boost/mpl/aux_/config/vector.hpp create mode 100644 include/boost/mpl/aux_/copy_if_op.hpp create mode 100644 include/boost/mpl/aux_/copy_op.hpp create mode 100644 include/boost/mpl/aux_/count_args.hpp create mode 100644 include/boost/mpl/aux_/debug_print.hpp create mode 100644 include/boost/mpl/aux_/deref_wknd.hpp create mode 100644 include/boost/mpl/aux_/empty_impl.hpp create mode 100644 include/boost/mpl/aux_/erase_impl.hpp create mode 100644 include/boost/mpl/aux_/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/fold_backward_impl_body.hpp create mode 100644 include/boost/mpl/aux_/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/fold_impl_body.hpp create mode 100644 include/boost/mpl/aux_/fold_op.hpp create mode 100644 include/boost/mpl/aux_/fold_pred.hpp create mode 100644 include/boost/mpl/aux_/front_impl.hpp create mode 100644 include/boost/mpl/aux_/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/has_rebind.hpp create mode 100644 include/boost/mpl/aux_/has_size.hpp create mode 100644 include/boost/mpl/aux_/include_preprocessed.hpp create mode 100644 include/boost/mpl/aux_/insert_impl.hpp create mode 100644 include/boost/mpl/aux_/insert_range_impl.hpp create mode 100644 include/boost/mpl/aux_/iter_apply.hpp create mode 100644 include/boost/mpl/aux_/iter_distance.hpp create mode 100644 include/boost/mpl/aux_/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/iter_push_front.hpp create mode 100644 include/boost/mpl/aux_/iterator_category.hpp create mode 100644 include/boost/mpl/aux_/iterator_names.hpp create mode 100644 include/boost/mpl/aux_/lambda_arity_param.hpp create mode 100644 include/boost/mpl/aux_/lambda_expr.hpp create mode 100644 include/boost/mpl/aux_/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/lambda_spec.hpp create mode 100644 include/boost/mpl/aux_/lambda_support.hpp create mode 100644 include/boost/mpl/aux_/metafunction.hpp create mode 100644 include/boost/mpl/aux_/msvc_dtw.hpp create mode 100644 include/boost/mpl/aux_/msvc_never_true.hpp create mode 100644 include/boost/mpl/aux_/nested_type_wknd.hpp create mode 100644 include/boost/mpl/aux_/next.hpp create mode 100644 include/boost/mpl/aux_/pop_back_impl.hpp create mode 100644 include/boost/mpl/aux_/pop_front_impl.hpp create mode 100644 include/boost/mpl/aux_/pred.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/at.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/at.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/at.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/at.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/apply.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/arg.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/at.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/bind.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/iter_fold_backward_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lambda_helper.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/list_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/lite_vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/meta_fun.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/placeholder.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector10.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector10_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector20.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector20_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector30.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector30_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector40.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector40_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector50.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector50_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessed/plain/vector_c.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/add.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/def_params_tail.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/default_params.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/enum.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/ext_params.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/filter_params.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/params.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/project1st.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/repeat.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/sub.hpp create mode 100644 include/boost/mpl/aux_/preprocessor/tuple.hpp create mode 100644 include/boost/mpl/aux_/prior.hpp create mode 100644 include/boost/mpl/aux_/push_back_impl.hpp create mode 100644 include/boost/mpl/aux_/push_front_impl.hpp create mode 100644 include/boost/mpl/aux_/range_c/O1_size.hpp create mode 100644 include/boost/mpl/aux_/range_c/back.hpp create mode 100644 include/boost/mpl/aux_/range_c/begin_end.hpp create mode 100644 include/boost/mpl/aux_/range_c/empty.hpp create mode 100644 include/boost/mpl/aux_/range_c/front.hpp create mode 100644 include/boost/mpl/aux_/range_c/iterator.hpp create mode 100644 include/boost/mpl/aux_/range_c/size.hpp create mode 100644 include/boost/mpl/aux_/range_c/tag.hpp create mode 100644 include/boost/mpl/aux_/sequence_tag.hpp create mode 100644 include/boost/mpl/aux_/size_impl.hpp create mode 100644 include/boost/mpl/aux_/template_arity.hpp create mode 100644 include/boost/mpl/aux_/template_arity_fwd.hpp create mode 100644 include/boost/mpl/aux_/traits_lambda_spec.hpp create mode 100644 include/boost/mpl/aux_/type_wrapper.hpp create mode 100644 include/boost/mpl/aux_/typeof.hpp create mode 100644 include/boost/mpl/aux_/value_wknd.hpp create mode 100644 include/boost/mpl/aux_/void_spec.hpp create mode 100644 include/boost/mpl/aux_/yes_no.hpp create mode 100644 include/boost/mpl/back.hpp create mode 100644 include/boost/mpl/back_fwd.hpp create mode 100644 include/boost/mpl/begin_end.hpp create mode 100644 include/boost/mpl/begin_end_fwd.hpp create mode 100644 include/boost/mpl/bind.hpp create mode 100644 include/boost/mpl/bool_c.hpp create mode 100644 include/boost/mpl/clear.hpp create mode 100644 include/boost/mpl/clear_fwd.hpp create mode 100644 include/boost/mpl/comparison.hpp create mode 100644 include/boost/mpl/comparison/equal_to.hpp create mode 100644 include/boost/mpl/comparison/greater.hpp create mode 100644 include/boost/mpl/comparison/greater_equal.hpp create mode 100644 include/boost/mpl/comparison/less.hpp create mode 100644 include/boost/mpl/comparison/less_equal.hpp create mode 100644 include/boost/mpl/comparison/not_equal_to.hpp create mode 100644 include/boost/mpl/compose.hpp create mode 100644 include/boost/mpl/compose/f_gx.hpp create mode 100644 include/boost/mpl/compose/f_gx_hx.hpp create mode 100644 include/boost/mpl/compose/f_gx_hy.hpp create mode 100644 include/boost/mpl/compose/f_gxy.hpp create mode 100644 include/boost/mpl/compose/f_x_hy.hpp create mode 100644 include/boost/mpl/compose/f_x_x.hpp create mode 100644 include/boost/mpl/contains.hpp create mode 100644 include/boost/mpl/copy.hpp create mode 100644 include/boost/mpl/copy_backward.hpp create mode 100644 include/boost/mpl/copy_backward_if.hpp create mode 100644 include/boost/mpl/copy_if.hpp create mode 100644 include/boost/mpl/count.hpp create mode 100644 include/boost/mpl/count_if.hpp create mode 100644 include/boost/mpl/distance.hpp create mode 100644 include/boost/mpl/empty.hpp create mode 100644 include/boost/mpl/empty_fwd.hpp create mode 100644 include/boost/mpl/equal.hpp create mode 100644 include/boost/mpl/erase.hpp create mode 100644 include/boost/mpl/erase_fwd.hpp create mode 100644 include/boost/mpl/filter_view.hpp create mode 100644 include/boost/mpl/find.hpp create mode 100644 include/boost/mpl/find_if.hpp create mode 100644 include/boost/mpl/fold.hpp create mode 100644 include/boost/mpl/fold_backward.hpp create mode 100644 include/boost/mpl/for_each.hpp create mode 100644 include/boost/mpl/front.hpp create mode 100644 include/boost/mpl/front_fwd.hpp create mode 100644 include/boost/mpl/identity.hpp create mode 100644 include/boost/mpl/if.hpp create mode 100644 include/boost/mpl/insert.hpp create mode 100644 include/boost/mpl/insert_fwd.hpp create mode 100644 include/boost/mpl/insert_range.hpp create mode 100644 include/boost/mpl/insert_range_fwd.hpp create mode 100644 include/boost/mpl/int_c.hpp create mode 100644 include/boost/mpl/integral_c.hpp create mode 100644 include/boost/mpl/iter_fold.hpp create mode 100644 include/boost/mpl/iter_fold_backward.hpp create mode 100644 include/boost/mpl/iterator_category.hpp create mode 100644 include/boost/mpl/iterator_range.hpp create mode 100644 include/boost/mpl/iterator_tag.hpp create mode 100644 include/boost/mpl/lambda.hpp create mode 100644 include/boost/mpl/lambda_fwd.hpp create mode 100644 include/boost/mpl/lambda_helper.hpp create mode 100644 include/boost/mpl/limits/arity.hpp create mode 100644 include/boost/mpl/limits/list.hpp create mode 100644 include/boost/mpl/limits/unrolling.hpp create mode 100644 include/boost/mpl/limits/vector.hpp create mode 100644 include/boost/mpl/list.hpp create mode 100644 include/boost/mpl/list/aux_/O1_size.hpp create mode 100644 include/boost/mpl/list/aux_/begin_end.hpp create mode 100644 include/boost/mpl/list/aux_/clear.hpp create mode 100644 include/boost/mpl/list/aux_/empty.hpp create mode 100644 include/boost/mpl/list/aux_/front.hpp create mode 100644 include/boost/mpl/list/aux_/iterator.hpp create mode 100644 include/boost/mpl/list/aux_/node.hpp create mode 100644 include/boost/mpl/list/aux_/numbered.hpp create mode 100644 include/boost/mpl/list/aux_/numbered_c.hpp create mode 100644 include/boost/mpl/list/aux_/pop_front.hpp create mode 100644 include/boost/mpl/list/aux_/push_front.hpp create mode 100644 include/boost/mpl/list/aux_/size.hpp create mode 100644 include/boost/mpl/list/aux_/tag.hpp create mode 100644 include/boost/mpl/list/list0.hpp create mode 100644 include/boost/mpl/list/list0_c.hpp create mode 100644 include/boost/mpl/list/list10.hpp create mode 100644 include/boost/mpl/list/list10_c.hpp create mode 100644 include/boost/mpl/list/list20.hpp create mode 100644 include/boost/mpl/list/list20_c.hpp create mode 100644 include/boost/mpl/list/list30.hpp create mode 100644 include/boost/mpl/list/list30_c.hpp create mode 100644 include/boost/mpl/list/list40.hpp create mode 100644 include/boost/mpl/list/list40_c.hpp create mode 100644 include/boost/mpl/list/list50.hpp create mode 100644 include/boost/mpl/list/list50_c.hpp create mode 100644 include/boost/mpl/list_c.hpp create mode 100644 include/boost/mpl/logical.hpp create mode 100644 include/boost/mpl/logical/and.hpp create mode 100644 include/boost/mpl/logical/not.hpp create mode 100644 include/boost/mpl/logical/or.hpp create mode 100644 include/boost/mpl/lower_bound.hpp create mode 100644 include/boost/mpl/math/fixed_c.hpp create mode 100644 include/boost/mpl/math/rational_c.hpp create mode 100644 include/boost/mpl/max_element.hpp create mode 100644 include/boost/mpl/meta_fun.hpp create mode 100644 include/boost/mpl/next.hpp create mode 100644 include/boost/mpl/pair.hpp create mode 100644 include/boost/mpl/placeholder.hpp create mode 100644 include/boost/mpl/pop_back.hpp create mode 100644 include/boost/mpl/pop_back_fwd.hpp create mode 100644 include/boost/mpl/pop_front.hpp create mode 100644 include/boost/mpl/pop_front_fwd.hpp create mode 100644 include/boost/mpl/prior.hpp create mode 100644 include/boost/mpl/project1st.hpp create mode 100644 include/boost/mpl/project2nd.hpp create mode 100644 include/boost/mpl/protect.hpp create mode 100644 include/boost/mpl/push_back.hpp create mode 100644 include/boost/mpl/push_back_fwd.hpp create mode 100644 include/boost/mpl/push_front.hpp create mode 100644 include/boost/mpl/push_front_fwd.hpp create mode 100644 include/boost/mpl/range_c.hpp create mode 100644 include/boost/mpl/remove.hpp create mode 100644 include/boost/mpl/remove_if.hpp create mode 100644 include/boost/mpl/replace.hpp create mode 100644 include/boost/mpl/replace_if.hpp create mode 100644 include/boost/mpl/reverse.hpp create mode 100644 include/boost/mpl/same_as.hpp create mode 100644 include/boost/mpl/select1st.hpp create mode 100644 include/boost/mpl/select2nd.hpp create mode 100644 include/boost/mpl/sequence_tag.hpp create mode 100644 include/boost/mpl/size.hpp create mode 100644 include/boost/mpl/size_fwd.hpp create mode 100644 include/boost/mpl/size_of.hpp create mode 100644 include/boost/mpl/transform.hpp create mode 100644 include/boost/mpl/transform_view.hpp create mode 100644 include/boost/mpl/unique.hpp create mode 100644 include/boost/mpl/upper_bound.hpp create mode 100644 include/boost/mpl/vector.hpp create mode 100644 include/boost/mpl/vector/aux_/O1_size.hpp create mode 100644 include/boost/mpl/vector/aux_/at.hpp create mode 100644 include/boost/mpl/vector/aux_/back.hpp create mode 100644 include/boost/mpl/vector/aux_/begin_end.hpp create mode 100644 include/boost/mpl/vector/aux_/clear.hpp create mode 100644 include/boost/mpl/vector/aux_/empty.hpp create mode 100644 include/boost/mpl/vector/aux_/front.hpp create mode 100644 include/boost/mpl/vector/aux_/item.hpp create mode 100644 include/boost/mpl/vector/aux_/iterator.hpp create mode 100644 include/boost/mpl/vector/aux_/node.hpp create mode 100644 include/boost/mpl/vector/aux_/numbered.hpp create mode 100644 include/boost/mpl/vector/aux_/numbered_c.hpp create mode 100644 include/boost/mpl/vector/aux_/pop_back.hpp create mode 100644 include/boost/mpl/vector/aux_/pop_front.hpp create mode 100644 include/boost/mpl/vector/aux_/push_back.hpp create mode 100644 include/boost/mpl/vector/aux_/push_front.hpp create mode 100644 include/boost/mpl/vector/aux_/size.hpp create mode 100644 include/boost/mpl/vector/aux_/tag.hpp create mode 100644 include/boost/mpl/vector/aux_/vector0.hpp create mode 100644 include/boost/mpl/vector/vector0.hpp create mode 100644 include/boost/mpl/vector/vector0_c.hpp create mode 100644 include/boost/mpl/vector/vector10.hpp create mode 100644 include/boost/mpl/vector/vector10_c.hpp create mode 100644 include/boost/mpl/vector/vector20.hpp create mode 100644 include/boost/mpl/vector/vector20_c.hpp create mode 100644 include/boost/mpl/vector/vector30.hpp create mode 100644 include/boost/mpl/vector/vector30_c.hpp create mode 100644 include/boost/mpl/vector/vector40.hpp create mode 100644 include/boost/mpl/vector/vector40_c.hpp create mode 100644 include/boost/mpl/vector/vector50.hpp create mode 100644 include/boost/mpl/vector/vector50_c.hpp create mode 100644 include/boost/mpl/vector_c.hpp create mode 100644 include/boost/mpl/void.hpp diff --git a/include/boost/mpl/O1_size.hpp b/include/boost/mpl/O1_size.hpp new file mode 100644 index 0000000..de9dd30 --- /dev/null +++ b/include/boost/mpl/O1_size.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/O1_size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_O1_SIZE_HPP_INCLUDED +#define BOOST_MPL_O1_SIZE_HPP_INCLUDED + +#include "boost/mpl/O1_size_fwd.hpp" +#include "boost/mpl/aux_/O1_size_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +// returns sequence size if it's an O(1) operation; otherwise returns -1 +template< typename Sequence > +struct O1_size + : O1_size_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(1, O1_size) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_O1_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/O1_size_fwd.hpp b/include/boost/mpl/O1_size_fwd.hpp new file mode 100644 index 0000000..cbe7c9f --- /dev/null +++ b/include/boost/mpl/O1_size_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/O1_size_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED +#define BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct O1_size_traits; +template< typename Sequence > struct O1_size; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_O1_SIZE_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/advance.hpp b/include/boost/mpl/advance.hpp new file mode 100644 index 0000000..80af171 --- /dev/null +++ b/include/boost/mpl/advance.hpp @@ -0,0 +1,179 @@ +//----------------------------------------------------------------------------- +// boost mpl/advance.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED +#define BOOST_MPL_ADVANCE_HPP_INCLUDED + +#include "boost/mpl/arithmetic/negate.hpp" +#include "boost/mpl/comparison/less.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/if.hpp" +#include "boost/mpl/iterator_tag.hpp" +#include "boost/mpl/aux_/advance_forward.hpp" +#include "boost/mpl/aux_/advance_backward.hpp" +#include "boost/mpl/aux_/iterator_category.hpp" +#include "boost/mpl/aux_/iterator_names.hpp" +#include "boost/mpl/aux_/msvc_never_true.hpp" +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { + +// forward/bidirectional iterators +template< typename Category, typename Iterator, typename N > +struct advance_impl +{ + typedef typename if_< + typename less< N,integral_c >::type + , aux::advance_backward< ::boost::mpl::negate::value > + , aux::advance_forward< BOOST_MPL_AUX_VALUE_WKND(N)::value > + >::type algo_; + + typedef typename BOOST_MPL_AUX_APPLY1(algo_,Iterator)::type type; +}; + +// random-access iterators +template< typename Iterator, typename N > +struct advance_impl +{ + typedef typename Iterator + ::template BOOST_MPL_AUX_ITERATOR_ADVANCE::type type; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) + > +struct advance +{ + typedef typename aux::advance_impl< + typename BOOST_MPL_AUX_ITERATOR_CATEGORY(Iterator) + , Iterator + , N + >::type type; +}; + +template< + typename Iterator + , long N + > +struct advance_c +{ + typedef typename aux::advance_impl< + typename BOOST_MPL_AUX_ITERATOR_CATEGORY(Iterator) + , Iterator + , integral_c + >::type type; +}; + +#else // no partial specialization + +namespace aux { + +// forward/bidirectional iterators +template< typename Category > +struct advance_impl +{ + template< typename Iterator, typename N > struct result_ + { + enum { n = N::value }; // MSVC 7.x workaround + typedef typename if_c< + (n < 0) + , aux::advance_backward<(-n)> + , aux::advance_forward + >::type algo_; + + typedef typename BOOST_MPL_AUX_APPLY1(algo_,Iterator)::type type; + }; +}; + +// random-access iterators + +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 + +// msvc_advance +#define BOOST_MPL_AUX_MSVC_DTW_NAME msvc_advance +#define BOOST_MPL_AUX_MSVC_DTW_ORIGINAL_NAME BOOST_MPL_AUX_ITERATOR_ADVANCE +#define BOOST_MPL_AUX_MSVC_DTW_ARITY 1 +#include "boost/mpl/aux_/msvc_dtw.hpp" + +template<> +struct advance_impl +{ + template< typename Iterator, typename N > struct result_ + { + typedef typename msvc_advance + ::template result_::type type; + }; +}; +#else +template<> +struct advance_impl +{ + template< typename Iterator, typename N > struct result_ + { + typedef typename Iterator + ::template BOOST_MPL_AUX_ITERATOR_ADVANCE::type type; + }; +}; +#endif + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) + > +struct advance +{ + typedef typename BOOST_MPL_AUX_ITERATOR_CATEGORY(Iterator) tag_; + typedef typename aux::advance_impl + ::template result_< + Iterator + , N + >::type type; +}; + +template< + typename Iterator + , long N + > +struct advance_c +{ + typedef typename BOOST_MPL_AUX_ITERATOR_CATEGORY(Iterator) tag_; + typedef typename aux::advance_impl + ::template result_< + Iterator + , integral_c + >::type type; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_MPL_AUX_VOID_SPEC(2, advance) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ADVANCE_HPP_INCLUDED diff --git a/include/boost/mpl/alias.hpp b/include/boost/mpl/alias.hpp new file mode 100644 index 0000000..21ac4ef --- /dev/null +++ b/include/boost/mpl/alias.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/alias.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ALIAS_HPP_INCLUDED +#define BOOST_MPL_ALIAS_HPP_INCLUDED + +namespace { +namespace mpl = boost::mpl; +} + +#endif // BOOST_MPL_ALIAS_HPP_INCLUDED diff --git a/include/boost/mpl/always.hpp b/include/boost/mpl/always.hpp new file mode 100644 index 0000000..8107b80 --- /dev/null +++ b/include/boost/mpl/always.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/always.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ALWAYS_HPP_INCLUDED +#define BOOST_MPL_ALWAYS_HPP_INCLUDED + +#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp" +#include "boost/mpl/limits/arity.hpp" +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/arity.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" +#include "boost/mpl/aux_/config/dtp.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< typename Value > +struct always +{ + template< + typename T + BOOST_MPL_PP_DEF_PARAMS_TAIL(1, typename T) + > + struct apply + { + typedef Value type; + }; +}; + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +namespace aux { +template< int N, typename T > +struct arity< always, N > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; +} +#endif + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,always) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ALWAYS_HPP_INCLUDED diff --git a/include/boost/mpl/apply_if.hpp b/include/boost/mpl/apply_if.hpp new file mode 100644 index 0000000..f2ab41a --- /dev/null +++ b/include/boost/mpl/apply_if.hpp @@ -0,0 +1,64 @@ +//----------------------------------------------------------------------------- +// boost/mpl/apply_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_APPLY_IF_HPP_INCLUDED +#define BOOST_MPL_APPLY_IF_HPP_INCLUDED + +#include "boost/mpl/if.hpp" +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(C) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(F1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(F2) + > +struct apply_if +{ + private: + typedef typename if_::type nullary_func_; + + public: + typedef typename BOOST_MPL_AUX_APPLY0(nullary_func_)::type type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,apply_if,(C,F1,F2)) +}; + +// (almost) copy & paste in order to save one more +// recursively nested template instantiation to user +template< + bool C + , typename F1 + , typename F2 + > +struct apply_if_c +{ + private: + typedef typename if_c::type nullary_func_; + + public: + typedef typename BOOST_MPL_AUX_APPLY0(nullary_func_)::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(3, apply_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_APPLY_IF_HPP_INCLUDED diff --git a/include/boost/mpl/arg.hpp b/include/boost/mpl/arg.hpp new file mode 100644 index 0000000..7517d36 --- /dev/null +++ b/include/boost/mpl/arg.hpp @@ -0,0 +1,138 @@ +//----------------------------------------------------------------------------- +// boost mpl/arg.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_ARG_HPP_INCLUDED +#define BOOST_MPL_ARG_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/arg_fwd.hpp" +# include "boost/mpl/void.hpp" +# include "boost/mpl/aux_/arity.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER arg.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/preprocessor/default_params.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/config/lambda_support.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +// local macro, #undef-ined at the end of the header +# define AUX_ARG_N_DEFAULT_PARAMS(param,value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + , value \ + ) \ + /**/ + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/arg.hpp")) +#include BOOST_PP_ITERATE() + + +# undef AUX_ARG_N_DEFAULT_PARAMS + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +// MWCW/Borland workaround +namespace aux { +template< int N, int A > +struct arity< arg, A > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; +} +#endif + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_ARG_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +#if i > 0 + +template<> struct arg +{ + BOOST_STATIC_CONSTANT(int, value = i); + typedef arg next; +#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) + typedef void_ tag; +#endif + + template< + AUX_ARG_N_DEFAULT_PARAMS(typename U, void_) + > + struct apply + { + typedef BOOST_PP_CAT(U,i) type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +#else + +template<> struct arg<-1> +{ + BOOST_STATIC_CONSTANT(int, value = -1); +#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) + typedef void_ tag; +#endif + + template< + AUX_ARG_N_DEFAULT_PARAMS(typename U, void_) + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +#endif // i > 0 + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/arg_fwd.hpp b/include/boost/mpl/arg_fwd.hpp new file mode 100644 index 0000000..f5e6fde --- /dev/null +++ b/include/boost/mpl/arg_fwd.hpp @@ -0,0 +1,28 @@ +//----------------------------------------------------------------------------- +// boost mpl/arg_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARG_FWD_HPP_INCLUDED +#define BOOST_MPL_ARG_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< int N > struct arg; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARG_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic.hpp b/include/boost/mpl/arithmetic.hpp new file mode 100644 index 0000000..3bc05ff --- /dev/null +++ b/include/boost/mpl/arithmetic.hpp @@ -0,0 +1,27 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_HPP_INCLUDED + +#include "boost/mpl/arithmetic/plus.hpp" +#include "boost/mpl/arithmetic/minus.hpp" +#include "boost/mpl/arithmetic/multiplies.hpp" +#include "boost/mpl/arithmetic/divides.hpp" +#include "boost/mpl/arithmetic/modulus.hpp" +#include "boost/mpl/arithmetic/negate.hpp" + +#endif // BOOST_MPL_ARITHMETIC_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/divides.hpp b/include/boost/mpl/arithmetic/divides.hpp new file mode 100644 index 0000000..c17f5ad --- /dev/null +++ b/include/boost/mpl/arithmetic/divides.hpp @@ -0,0 +1,76 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/divides.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000/02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/config/eti.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename T, T N1, T N2, T N3 = 1, T N4 = 1, T N5 = 1 + > +struct divides_c +{ + BOOST_STATIC_CONSTANT(T, value = (N1 / N2 / N3 / N4 / N5)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> +struct divides_c +{ +}; +#endif + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = integral_c + , typename T4 = integral_c + , typename T5 = integral_c + > +struct divides + : divides_c< + BOOST_MPL_AUX_TYPEOF(T1, + T1::value / T2::value / T3::value / T4::value / T5::value + ) + , BOOST_MPL_AUX_VALUE_WKND(T1)::value + , BOOST_MPL_AUX_VALUE_WKND(T2)::value + , BOOST_MPL_AUX_VALUE_WKND(T3)::value + , BOOST_MPL_AUX_VALUE_WKND(T4)::value + , BOOST_MPL_AUX_VALUE_WKND(T5)::value + > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,divides) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/minus.hpp b/include/boost/mpl/arithmetic/minus.hpp new file mode 100644 index 0000000..7bbb2d3 --- /dev/null +++ b/include/boost/mpl/arithmetic/minus.hpp @@ -0,0 +1,68 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/minus.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename T, T N1, T N2, T N3 = 0, T N4 = 0, T N5 = 0 + > +struct minus_c +{ + BOOST_STATIC_CONSTANT(T, value = (N1 - N2 - N3 - N4 - N5)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = integral_c + , typename T4 = integral_c + , typename T5 = integral_c + > +struct minus + : minus_c< + BOOST_MPL_AUX_TYPEOF(T1, + T1::value - T2::value - T3::value - T4::value - T5::value + ) + , BOOST_MPL_AUX_VALUE_WKND(T1)::value + , BOOST_MPL_AUX_VALUE_WKND(T2)::value + , BOOST_MPL_AUX_VALUE_WKND(T3)::value + , BOOST_MPL_AUX_VALUE_WKND(T4)::value + , BOOST_MPL_AUX_VALUE_WKND(T5)::value + > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,minus) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/modulus.hpp b/include/boost/mpl/arithmetic/modulus.hpp new file mode 100644 index 0000000..5b23b5b --- /dev/null +++ b/include/boost/mpl/arithmetic/modulus.hpp @@ -0,0 +1,70 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/modulus.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2111%12 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/config/eti.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename T, T N1, T N2 + > +struct modulus_c +{ + BOOST_STATIC_CONSTANT(T, value = (N1 % N2)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> +struct modulus_c +{ +}; +#endif + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct modulus + : modulus_c< + BOOST_MPL_AUX_TYPEOF(T1, + T1::value % T2::value + ) + , BOOST_MPL_AUX_VALUE_WKND(T1)::value + , BOOST_MPL_AUX_VALUE_WKND(T2)::value + > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(2,modulus) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/multiplies.hpp b/include/boost/mpl/arithmetic/multiplies.hpp new file mode 100644 index 0000000..2485640 --- /dev/null +++ b/include/boost/mpl/arithmetic/multiplies.hpp @@ -0,0 +1,68 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/multiplies.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename T, T N1, T N2, T N3 = 1, T N4 = 1, T N5 = 1 + > +struct multiplies_c +{ + BOOST_STATIC_CONSTANT(T, value = (N1 * N2 * N3 * N4 * N5)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = integral_c + , typename T4 = integral_c + , typename T5 = integral_c + > +struct multiplies + : multiplies_c< + BOOST_MPL_AUX_TYPEOF(T1, + T1::value * T2::value * T3::value * T4::value * T5::value + ) + , BOOST_MPL_AUX_VALUE_WKND(T1)::value + , BOOST_MPL_AUX_VALUE_WKND(T2)::value + , BOOST_MPL_AUX_VALUE_WKND(T3)::value + , BOOST_MPL_AUX_VALUE_WKND(T4)::value + , BOOST_MPL_AUX_VALUE_WKND(T5)::value + > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,multiplies) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/negate.hpp b/include/boost/mpl/arithmetic/negate.hpp new file mode 100644 index 0000000..3051291 --- /dev/null +++ b/include/boost/mpl/arithmetic/negate.hpp @@ -0,0 +1,47 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/negate.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct negate +{ + typedef BOOST_MPL_AUX_TYPEOF(T,T::value) value_type; + BOOST_STATIC_CONSTANT(value_type, value = (-T::value)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +BOOST_MPL_AUX_VOID_SPEC(1,negate) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED diff --git a/include/boost/mpl/arithmetic/plus.hpp b/include/boost/mpl/arithmetic/plus.hpp new file mode 100644 index 0000000..127a097 --- /dev/null +++ b/include/boost/mpl/arithmetic/plus.hpp @@ -0,0 +1,68 @@ +//----------------------------------------------------------------------------- +// boost mpl/arithmetic/plus.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED +#define BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/typeof.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename T, T N1, T N2, T N3 = 0, T N4 = 0, T N5 = 0 + > +struct plus_c +{ + BOOST_STATIC_CONSTANT(T, value = (N1 + N2 + N3 + N4 + N5)); +#if !defined(__BORLANDC__) + typedef integral_c type; +#else + typedef integral_c type; +#endif +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = integral_c + , typename T4 = integral_c + , typename T5 = integral_c + > +struct plus + : plus_c< + BOOST_MPL_AUX_TYPEOF(T1, + T1::value + T2::value + T3::value + T4::value + T5::value + ) + , BOOST_MPL_AUX_VALUE_WKND(T1)::value + , BOOST_MPL_AUX_VALUE_WKND(T2)::value + , BOOST_MPL_AUX_VALUE_WKND(T3)::value + , BOOST_MPL_AUX_VALUE_WKND(T4)::value + , BOOST_MPL_AUX_VALUE_WKND(T5)::value + > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,plus) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED diff --git a/include/boost/mpl/assert_is_same.hpp b/include/boost/mpl/assert_is_same.hpp new file mode 100644 index 0000000..4f705ad --- /dev/null +++ b/include/boost/mpl/assert_is_same.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/assert_is_same.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ASSERT_IS_SAME_HPP_INCLUDED +#define BOOST_MPL_ASSERT_IS_SAME_HPP_INCLUDED + +#include "boost/static_assert.hpp" +#include "boost/type_traits/same_traits.hpp" + +namespace boost { +namespace mpl { + +// the following macros are shortcuts for some often-used but verbose forms +// of static asserts + +// tokenization takes place before macro expansion (see 2.1 [lex.phases] +// para 3-4), so, strictly speaking, spaces between '<', 'type1', and +// 'type2', '>' tokens below are not required; they are needed in practice, +// though, because there is at least one compiler (MSVC 6.5) that does not +// conform to the standard here + +#define BOOST_MPL_ASSERT_IS_SAME(type1, type2) \ + BOOST_STATIC_ASSERT((::boost::is_same< type1, type2 >::value)) \ +/**/ + +#define BOOST_MPL_ASSERT_NOT_SAME(type1, type2) \ + BOOST_STATIC_ASSERT(!(::boost::is_same< type1, type2 >::value)) \ +/**/ + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ASSERT_IS_SAME_HPP_INCLUDED diff --git a/include/boost/mpl/at.hpp b/include/boost/mpl/at.hpp new file mode 100644 index 0000000..6dd7ee1 --- /dev/null +++ b/include/boost/mpl/at.hpp @@ -0,0 +1,56 @@ +//----------------------------------------------------------------------------- +// boost mpl/at.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AT_HPP_INCLUDED +#define BOOST_MPL_AT_HPP_INCLUDED + +#include "boost/mpl/at_fwd.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/at_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct at + : at_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< N,Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,at,(N,Sequence)) +}; + +template< + long N + , typename Sequence + > +struct at_c + : at_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< integral_c,Sequence > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(2, at) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AT_HPP_INCLUDED diff --git a/include/boost/mpl/at_fwd.hpp b/include/boost/mpl/at_fwd.hpp new file mode 100644 index 0000000..d33d557 --- /dev/null +++ b/include/boost/mpl/at_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/at_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AT_FWD_HPP_INCLUDED +#define BOOST_MPL_AT_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct at_traits; +template< typename N, typename Sequence > struct at; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/O1_size_impl.hpp b/include/boost/mpl/aux_/O1_size_impl.hpp new file mode 100644 index 0000000..3cda5fe --- /dev/null +++ b/include/boost/mpl/aux_/O1_size_impl.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/O1_size_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED +#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED + +#include "boost/mpl/O1_size_fwd.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/if.hpp" +#include "boost/mpl/aux_/has_size.hpp" + +namespace boost { +namespace mpl { + +// default implementation - returns |Sequence::size| if sequence has a |size| +// member, and -1 otherwise; conrete sequences might override it by specializing +// either the |O1_size_traits| or the primary |O1_size| template + +#if 0//!defined(BOOST_MSVC) || BOOST_MSVC > 1300 +namespace aux { + +template< typename Sequence > +struct O1_size_impl + : Sequence::size +{ +}; + +} // namespace aux + +template< typename Tag > +struct O1_size_traits +{ + template< typename Sequence > struct algorithm + : if_c< + ::boost::mpl::aux::has_size::value + , aux::O1_size_impl + , integral_c + >::type + { + }; +}; +#else + +template< typename Tag > +struct O1_size_traits +{ + template< typename Sequence > struct algorithm + : integral_c + { + }; +}; + +#endif // BOOST_MSVC > 1300 + + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/advance_backward.hpp b/include/boost/mpl/aux_/advance_backward.hpp new file mode 100644 index 0000000..ac3e234 --- /dev/null +++ b/include/boost/mpl/aux_/advance_backward.hpp @@ -0,0 +1,118 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/advance_backward.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_ADVANCE_BACKWARD_HPP_INCLUDED +#define BOOST_MPL_AUX_ADVANCE_BACKWARD_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/prior.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER advance_backward.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/unrolling.hpp" +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/inc.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< long N > struct advance_backward; + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/advance_backward.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename BOOST_MPL_AUX_APPLY1( + advance_backward + , Iterator + )::type chunk_result_; + + typedef typename BOOST_MPL_AUX_APPLY1( + advance_backward<( + (N - BOOST_MPL_UNROLLING_LIMIT) < 0 + ? 0 + : N - BOOST_MPL_UNROLLING_LIMIT + )> + , chunk_result_ + )::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_ADVANCE_BACKWARD_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +template<> +struct advance_backward< BOOST_PP_FRAME_ITERATION(1) > +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(1, BOOST_PP_FRAME_ITERATION(1), "boost/mpl/aux_/advance_backward.hpp")) +# include BOOST_PP_ITERATE() + + typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type; + }; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) + template<> struct apply { typedef int type; }; +#endif +}; + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +# define AUX_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) +# define AUX_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) + + typedef typename BOOST_MPL_AUX_PRIOR(AUX_ITER_0) AUX_ITER_1; + +# undef AUX_ITER_1 +# undef AUX_ITER_0 + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/advance_forward.hpp b/include/boost/mpl/aux_/advance_forward.hpp new file mode 100644 index 0000000..97cc74b --- /dev/null +++ b/include/boost/mpl/aux_/advance_forward.hpp @@ -0,0 +1,118 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/advance_forward.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED +#define BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER advance_forward.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/unrolling.hpp" +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/inc.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< long N > struct advance_forward; + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/advance_forward.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename BOOST_MPL_AUX_APPLY1( + advance_forward + , Iterator + )::type chunk_result_; + + typedef typename BOOST_MPL_AUX_APPLY1( + advance_forward<( + (N - BOOST_MPL_UNROLLING_LIMIT) < 0 + ? 0 + : N - BOOST_MPL_UNROLLING_LIMIT + )> + , chunk_result_ + )::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_ADVANCE_FORWARD_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +template<> +struct advance_forward< BOOST_PP_FRAME_ITERATION(1) > +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(1, BOOST_PP_FRAME_ITERATION(1), "boost/mpl/aux_/advance_forward.hpp")) +# include BOOST_PP_ITERATE() + + typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) type; + }; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) + template<> struct apply { typedef int type; }; +#endif +}; + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +# define AUX_ITER_0 BOOST_PP_CAT(iter,BOOST_PP_DEC(BOOST_PP_FRAME_ITERATION(2))) +# define AUX_ITER_1 BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(2)) + + typedef typename BOOST_MPL_AUX_NEXT(AUX_ITER_0) AUX_ITER_1; + +# undef AUX_ITER_1 +# undef AUX_ITER_0 + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/apply.hpp b/include/boost/mpl/aux_/apply.hpp new file mode 100644 index 0000000..9ec72ff --- /dev/null +++ b/include/boost/mpl/aux_/apply.hpp @@ -0,0 +1,66 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/apply.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_APPLY_HPP_INCLUDED +#define BOOST_MPL_AUX_APPLY_HPP_INCLUDED + +#include "boost/mpl/aux_/config/dtp.hpp" +#include "boost/config.hpp" + +#define BOOST_MPL_AUX_APPLY(arity, args) \ + BOOST_PP_CAT(BOOST_MPL_AUX_APPLY,arity) args \ +/**/ + +#if defined(BOOST_MPL_USE_APPLY_INTERNALLY) \ + || defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) \ + || (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) + +# if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/apply.hpp" +# endif + +// tokenization takes place before macro expansion (see 2.1 [lex.phases] +// para 3-4), so, strictly speaking, spaces between '<', 'f', and '>' tokens +// below (BOOST_MPL_AUX_APPLY0) are not required; they are needed in practice, +// though, because there is at least one compiler (MSVC 6.5) that does not +// conform to the standard here +# define BOOST_MPL_AUX_APPLY0(f) apply0< f > +# define BOOST_MPL_AUX_APPLY1(f,a1) apply1 +# define BOOST_MPL_AUX_APPLY2(f,a1,a2) apply2 +# define BOOST_MPL_AUX_APPLY3(f,a1,a2,a3) apply3 +# define BOOST_MPL_AUX_APPLY4(f,a1,a2,a3,a4) apply4 +# define BOOST_MPL_AUX_APPLY5(f,a1,a2,a3,a4,a5) apply5 +# define BOOST_MPL_AUX_APPLY6(f,a1,a2,a3,a4,a5,a6) apply6 +# define BOOST_MPL_AUX_APPLY7(f,a1,a2,a3,a4,a5,a6,a7) apply7 +# define BOOST_MPL_AUX_APPLY8(f,a1,a2,a3,a4,a5,a6,a7,a8) apply8 +# define BOOST_MPL_AUX_APPLY9(f,a1,a2,a3,a4,a5,a6,a7,a8,a9) apply9 + +#else + +# define BOOST_MPL_AUX_APPLY0(f) f +# define BOOST_MPL_AUX_APPLY1(f,a1) f::template apply +# define BOOST_MPL_AUX_APPLY2(f,a1,a2) f::template apply +# define BOOST_MPL_AUX_APPLY3(f,a1,a2,a3) f::template apply +# define BOOST_MPL_AUX_APPLY4(f,a1,a2,a3,a4) f::template apply +# define BOOST_MPL_AUX_APPLY5(f,a1,a2,a3,a4,a5) f::template apply +# define BOOST_MPL_AUX_APPLY6(f,a1,a2,a3,a4,a5,a6) f::template apply +# define BOOST_MPL_AUX_APPLY7(f,a1,a2,a3,a4,a5,a6,a7) f::template apply +# define BOOST_MPL_AUX_APPLY8(f,a1,a2,a3,a4,a5,a6,a7,a8) f::template apply +# define BOOST_MPL_AUX_APPLY9(f,a1,a2,a3,a4,a5,a6,a7,a8,a9) f::template apply + +#endif + +#endif // BOOST_MPL_AUX_APPLY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/apply_1st.hpp b/include/boost/mpl/aux_/apply_1st.hpp new file mode 100644 index 0000000..88f8ae4 --- /dev/null +++ b/include/boost/mpl/aux_/apply_1st.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/apply_1st.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED +#define BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +struct apply_1st +{ + template< typename Pair, typename T > struct apply + : apply2< + typename Pair::first + , typename Pair::second + , T + > + { + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_APPLY_1ST_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/arity.hpp b/include/boost/mpl/aux_/arity.hpp new file mode 100644 index 0000000..d951c33 --- /dev/null +++ b/include/boost/mpl/aux_/arity.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/arity.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ARITY_HPP_INCLUDED +#define BOOST_MPL_AUX_ARITY_HPP_INCLUDED + +#include "boost/mpl/aux_/config/dtp.hpp" + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) + +# include "boost/config.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// agurt, 15/mar/02: it's possible to implement the template so that it will +// "just work" and do not require any specialization, but not on the compilers +// that require the arity workaround in the first place +template< typename F, int N > +struct arity +{ + BOOST_STATIC_CONSTANT(int, value = N); +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES + +#endif // BOOST_MPL_AUX_ARITY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/at_impl.hpp b/include/boost/mpl/aux_/at_impl.hpp new file mode 100644 index 0000000..996b0f8 --- /dev/null +++ b/include/boost/mpl/aux_/at_impl.hpp @@ -0,0 +1,50 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/at_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/advance.hpp" +#include "boost/mpl/aux_/deref_wknd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |at_traits| or the primary |at| template + +template< typename Tag > +struct at_traits +{ + template< typename N, typename Sequence > struct algorithm + { + typedef typename advance< + typename begin::type + , N + >::type iter_; + + typedef typename BOOST_MPL_AUX_DEREF_WNKD(iter_) type; + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,at_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_AT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/back_impl.hpp b/include/boost/mpl/aux_/back_impl.hpp new file mode 100644 index 0000000..eaba51f --- /dev/null +++ b/include/boost/mpl/aux_/back_impl.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/back_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/prior.hpp" +#include "boost/mpl/aux_/deref_wknd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +// default implementation, requires at least bi-directional iterators; +// conrete sequences might override it by specializing either the +// |back_traits| or the primary |back| template + +template< typename Tag > +struct back_traits +{ + template< typename Sequence > struct algorithm + { + typedef typename end::type iter_; +#if !defined(BOOST_MSVC) || BOOST_MSVC > 1200 + typedef typename iter_::prior last_; +#else + typedef typename prior::type last_; +#endif + typedef typename BOOST_MPL_AUX_DEREF_WNKD(last_) type; + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,back_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_BACK_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/begin_end_impl.hpp b/include/boost/mpl/aux_/begin_end_impl.hpp new file mode 100644 index 0000000..76ada67 --- /dev/null +++ b/include/boost/mpl/aux_/begin_end_impl.hpp @@ -0,0 +1,73 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/begin_end_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED + +#include "boost/mpl/begin_end_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |begin_traits/end_traits| or the primary +// |begin/end| templates + +template< typename Tag > +struct begin_traits +{ + template< typename Sequence > struct algorithm + { + typedef typename Sequence::begin type; + }; +}; + +template< typename Tag > +struct end_traits +{ + template< typename Sequence > struct algorithm + { + typedef typename Sequence::end type; + }; +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct begin_traits +{ + template< typename Sequence > struct algorithm + { + typedef int type; + }; +}; + +template<> struct end_traits +{ + template< typename Sequence > struct algorithm + { + typedef int type; + }; +}; +#endif + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,begin_traits) +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,end_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_BEGIN_END_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/bool_value_wknd.hpp b/include/boost/mpl/aux_/bool_value_wknd.hpp new file mode 100644 index 0000000..b3d9a59 --- /dev/null +++ b/include/boost/mpl/aux_/bool_value_wknd.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/bool_value_wknd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_BOOL_VALUE_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_BOOL_VALUE_WKND_HPP_INCLUDED + +#if defined(__BORLANDC__) || defined(BOOST_MSVC) && BOOST_MSVC < 1300 + +# include "boost/mpl/bool_c.hpp" + +namespace boost { namespace mpl { namespace aux { + +template< typename C > +struct bool_value_wknd + : C +{ +}; + +template<> +struct bool_value_wknd + : false_c +{ +}; + +}}} // namespace boost::mpl::aux + +# define BOOST_MPL_AUX_BOOL_VALUE_WKND(C) ::boost::mpl::aux::bool_value_wknd + +#else + +# define BOOST_MPL_AUX_BOOL_VALUE_WKND(C) C + +#endif // __BORLANDC__ + +#endif // BOOST_MPL_AUX_BOOL_VALUE_WKND_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/clear_impl.hpp b/include/boost/mpl/aux_/clear_impl.hpp new file mode 100644 index 0000000..b77293a --- /dev/null +++ b/include/boost/mpl/aux_/clear_impl.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/clear_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED + +#include "boost/mpl/clear_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// no default implementation; the definition is needed to make MSVC happy + +template< typename Tag > +struct clear_traits +{ + template< typename Sequence > struct algorithm; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,clear_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_CLEAR_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/bind.hpp b/include/boost/mpl/aux_/config/bind.hpp new file mode 100644 index 0000000..6796003 --- /dev/null +++ b/include/boost/mpl/aux_/config/bind.hpp @@ -0,0 +1,13 @@ +// Copyright David Abrahams 2002. Permission to copy, use, +// modify, sell and distribute this software is granted provided this +// copyright notice appears in all copies. This software is provided +// "as is" without express or implied warranty, and with no claim as +// to its suitability for any purpose. +#ifndef BIND_DWA2002910_HPP +# define BIND_DWA2002910_HPP + +# include +# if defined(BOOST_MSVC) && BOOST_MSVC <= 1300 +# define BOOST_MPL_NO_BIND_TEMPLATE +# endif +#endif // BIND_DWA2002910_HPP diff --git a/include/boost/mpl/aux_/config/compiler.hpp b/include/boost/mpl/aux_/config/compiler.hpp new file mode 100644 index 0000000..26052dc --- /dev/null +++ b/include/boost/mpl/aux_/config/compiler.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/dtp.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED + +#include "boost/mpl/aux_/config/dtp.hpp" +#include "boost/config.hpp" + +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 +# define BOOST_MPL_COMPILER_CLASS msvc60 +#elif defined(BOOST_MSVC) && BOOST_MSVC == 1300 +# define BOOST_MPL_COMPILER_CLASS msvc70 +#elif defined(__GNUC__) +# define BOOST_MPL_COMPILER_CLASS gcc +#elif defined(__BORLANDC__) +# define BOOST_MPL_COMPILER_CLASS bcc +#elif defined(__MWERKS__) && __MWERKS__ <= 0x3001 +# define BOOST_MPL_COMPILER_CLASS mwcw +#elif defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +# define BOOST_MPL_COMPILER_CLASS no_ctps +#else +# define BOOST_MPL_COMPILER_CLASS plain +#endif + +#define BOOST_MPL_COMPILER_DIR BOOST_MPL_COMPILER_CLASS/ + +#endif // BOOST_MPL_AUX_CONFIG_COMPILER_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/dependent_nttp.hpp b/include/boost/mpl/aux_/config/dependent_nttp.hpp new file mode 100644 index 0000000..997b68e --- /dev/null +++ b/include/boost/mpl/aux_/config/dependent_nttp.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/dependent_nttp.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED + +// GCC and EDG-based compilers incorrectly reject the following code: +// template< typename T, T n > struct a; +// template< typename T > struct b; +// template< typename T, T n > struct b< a > {}; + +#if defined(__EDG__) \ + || defined(__GNUC__) +# define BOOST_NO_DEPENDENT_NON_TYPE_PARAMETER_IN_PARTIAL_SPECIALIZATION +#endif + +#endif // BOOST_MPL_AUX_CONFIG_DEPENDENT_NTTP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/dtp.hpp b/include/boost/mpl/aux_/config/dtp.hpp new file mode 100644 index 0000000..cee39c4 --- /dev/null +++ b/include/boost/mpl/aux_/config/dtp.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/dtp.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED + +// MWCW 7.x-8.0 "losts" default template parameters of nested class +// templates when their owner classes are passed as arguments to other +// templates; Borland "forgets" them from the very beginning (if the owner +// class is a class template). +#if defined(__MWERKS__) && __MWERKS__ <= 0x3001 \ + || defined(__BORLANDC__) && __BORLANDC__ <= 0x551 +# define BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES +#endif + +#endif // BOOST_MPL_AUX_CONFIG_DTP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/eti.hpp b/include/boost/mpl/aux_/config/eti.hpp new file mode 100644 index 0000000..fe7c4af --- /dev/null +++ b/include/boost/mpl/aux_/config/eti.hpp @@ -0,0 +1,27 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/eti.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED + +#include "boost/config.hpp" + +// flag for MSVC 6.5's so-called "early template instantiation bug" +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 +# define BOOST_MPL_MSVC_ETI_BUG +#endif + +#endif // BOOST_MPL_AUX_CONFIG_ETI_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/internals.hpp b/include/boost/mpl/aux_/config/internals.hpp new file mode 100644 index 0000000..67fd57f --- /dev/null +++ b/include/boost/mpl/aux_/config/internals.hpp @@ -0,0 +1,26 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/use_preprocessed.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_INTERNALS_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_INTERNALS_HPP_INCLUDED + +#include "boost/config.hpp" + +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 +# define BOOST_MPL_INTERNALS_USE_ITERATOR_CATEGORY +#endif + +#endif // BOOST_MPL_AUX_CONFIG_INTERNALS_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/lambda_support.hpp b/include/boost/mpl/aux_/config/lambda_support.hpp new file mode 100644 index 0000000..559718e --- /dev/null +++ b/include/boost/mpl/aux_/config/lambda_support.hpp @@ -0,0 +1,33 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/lambda_support.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_LAMBDA_SUPPORT_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_LAMBDA_SUPPORT_HPP_INCLUDED + +#include "boost/mpl/aux_/config/ttp.hpp" +#include "boost/config.hpp" + +// agurt, 15/jan/02: full-fledged implementation requires both +// template template parameters _and_ partial specialization + +#if defined(BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS) \ + || defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +# define BOOST_MPL_NO_FULL_LAMBDA_SUPPORT +#endif + +//#define BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT + +#endif // BOOST_MPL_AUX_CONFIG_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/msvc_typename.hpp b/include/boost/mpl/aux_/config/msvc_typename.hpp new file mode 100644 index 0000000..0c15424 --- /dev/null +++ b/include/boost/mpl/aux_/config/msvc_typename.hpp @@ -0,0 +1,28 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/msvc_typename.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED + +#include "boost/config.hpp" + +#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300) +# define BOOST_MSVC_TYPENAME +#else +# define BOOST_MSVC_TYPENAME typename +#endif + +#endif // BOOST_MPL_AUX_CONFIG_MSVC_TYPENAME_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/overload_resolution.hpp b/include/boost/mpl/aux_/config/overload_resolution.hpp new file mode 100644 index 0000000..fb363c7 --- /dev/null +++ b/include/boost/mpl/aux_/config/overload_resolution.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/overload_resolution.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED + +#if defined(__BORLANDC__) || defined(__MWERKS__) && __MWERKS__ < 0x3001 +# define BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION +#endif + +#endif // BOOST_MPL_AUX_CONFIG_OVERLOAD_RESOLUTION_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/ttp.hpp b/include/boost/mpl/aux_/config/ttp.hpp new file mode 100644 index 0000000..e2c15cf --- /dev/null +++ b/include/boost/mpl/aux_/config/ttp.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/ttp.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED + +#include "boost/config.hpp" + +#if defined(BOOST_NO_TEMPLATE_TEMPLATES) +# define BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS +#endif + +#if defined(__GNUC__) && !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING +#endif + +#endif // BOOST_MPL_AUX_CONFIG_TTP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/use_preprocessed.hpp b/include/boost/mpl/aux_/config/use_preprocessed.hpp new file mode 100644 index 0000000..0165449 --- /dev/null +++ b/include/boost/mpl/aux_/config/use_preprocessed.hpp @@ -0,0 +1,22 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/use_preprocessed.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED + +#define BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_AUX_CONFIG_USE_PREPROCESSED_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/config/vector.hpp b/include/boost/mpl/aux_/config/vector.hpp new file mode 100644 index 0000000..9dd1e06 --- /dev/null +++ b/include/boost/mpl/aux_/config/vector.hpp @@ -0,0 +1,28 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/config/vector.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_CONFIG_VECTOR_HPP_INCLUDED +#define BOOST_MPL_AUX_CONFIG_VECTOR_HPP_INCLUDED + +// agurt, 10/jul/02: full-fledged __typeof is needed to permit the optimal +// vector implementation + +#if defined(__MWERKS__) && __MWERKS__ >= 0x3001 \ + && !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL +#endif + +#endif // BOOST_MPL_AUX_CONFIG_VECTOR_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/copy_if_op.hpp b/include/boost/mpl/aux_/copy_if_op.hpp new file mode 100644 index 0000000..31415af --- /dev/null +++ b/include/boost/mpl/aux_/copy_if_op.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/copy_if_op.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_COPY_IF_OP_HPP_INCLUDED +#define BOOST_MPL_AUX_COPY_IF_OP_HPP_INCLUDED + +#include "boost/mpl/identity.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename Operation + , typename Predicate + > +struct copy_if_op +{ + template< typename Sequence, typename T > struct apply + { + typedef typename apply_if< + typename apply1::type + , apply2 + , identity + >::type type; + }; +}; + +} // namespace aux + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,aux::copy_if_op) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_COPY_IF_OP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/copy_op.hpp b/include/boost/mpl/aux_/copy_op.hpp new file mode 100644 index 0000000..265b3ea --- /dev/null +++ b/include/boost/mpl/aux_/copy_op.hpp @@ -0,0 +1,50 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/copy_op.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_COPY_OP_HPP_INCLUDED +#define BOOST_MPL_AUX_COPY_OP_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// hand-written version is more efficient than bind/lambda expression +template< + typename Operation + > +struct copy_op +{ + template< typename Sequence, typename T > struct apply + { + typedef typename apply2< + Operation + , Sequence + , T + >::type type; + }; +}; + +} // namespace aux + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,aux::copy_op) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_COPY_OP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/count_args.hpp b/include/boost/mpl/aux_/count_args.hpp new file mode 100644 index 0000000..067371c --- /dev/null +++ b/include/boost/mpl/aux_/count_args.hpp @@ -0,0 +1,103 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/count_args.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#include "boost/preprocessor/expr_if.hpp" +#include "boost/preprocessor/inc.hpp" +#include "boost/preprocessor/cat.hpp" + +#if !defined(BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM) +# define BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM typename T +#endif + +// local macros, #undef-ined at the end of the header + +#if !defined(BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES) + +# include "boost/mpl/aux_/preprocessor/repeat.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" + +# define AUX_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT +# define AUX_COUNT_ARGS_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_AUX_COUNT_ARGS_ARITY \ + , param \ + ) \ + /**/ + +#else + +# include "boost/preprocessor/enum_shifted_params.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/inc.hpp" + +# define AUX_COUNT_ARGS_REPEAT BOOST_PP_REPEAT_1ST +# define AUX_COUNT_ARGS_PARAMS(param) \ + BOOST_PP_ENUM_SHIFTED_PARAMS( \ + BOOST_PP_INC(BOOST_MPL_AUX_COUNT_ARGS_ARITY) \ + , param \ + ) \ + /**/ + +#endif // BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES + + +#define AUX_IS_ARG_TEMPLATE_NAME \ + BOOST_PP_CAT(is_,BOOST_PP_CAT(BOOST_MPL_AUX_COUNT_ARGS_PREFIX,_arg)) \ +/**/ + +#define AUX_COUNT_ARGS_FUNC(unused, i, param) \ + BOOST_PP_EXPR_IF(i, +) \ + AUX_IS_ARG_TEMPLATE_NAME::value \ +/**/ + +// is__arg +template< BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM > +struct AUX_IS_ARG_TEMPLATE_NAME +{ + BOOST_STATIC_CONSTANT(bool, value = true); +}; + +template<> +struct AUX_IS_ARG_TEMPLATE_NAME +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +// _count_args +template< + AUX_COUNT_ARGS_PARAMS(BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM) + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_COUNT_ARGS_PREFIX,_count_args) +{ + BOOST_STATIC_CONSTANT(int, value = AUX_COUNT_ARGS_REPEAT( + BOOST_MPL_AUX_COUNT_ARGS_ARITY + , AUX_COUNT_ARGS_FUNC + , T + )); +}; + +#undef AUX_COUNT_ARGS_FUNC +#undef AUX_IS_ARG_TEMPLATE_NAME +#undef AUX_COUNT_ARGS_PARAMS +#undef AUX_COUNT_ARGS_REPEAT + +#undef BOOST_MPL_AUX_COUNT_ARGS_ARITY +#undef BOOST_MPL_AUX_COUNT_ARGS_DEFAULT +#undef BOOST_MPL_AUX_COUNT_ARGS_PREFIX +#undef BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES +#undef BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM diff --git a/include/boost/mpl/aux_/debug_print.hpp b/include/boost/mpl/aux_/debug_print.hpp new file mode 100644 index 0000000..787b083 --- /dev/null +++ b/include/boost/mpl/aux_/debug_print.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/debug_print.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Fernando Cacciola, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_DEBUG_PRINT_HPP_INCLUDED +#define BOOST_MPL_AUX_DEBUG_PRINT_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +template< typename T > +struct print_ +{ + enum { value = T::not_existing_memeber }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#define BOOST_MPL_AUX_DEBUG_PRINT(type) \ +bool const mpl_debug_print_##type \ + = boost::mpl::aux::print_::value \ +/**/ + +#endif // BOOST_MPL_AUX_DEBUG_PRINT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/deref_wknd.hpp b/include/boost/mpl/aux_/deref_wknd.hpp new file mode 100644 index 0000000..5abce29 --- /dev/null +++ b/include/boost/mpl/aux_/deref_wknd.hpp @@ -0,0 +1,47 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/deref_wknd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_DEREF_WNKD_HPP_INCLUDED +#define BOOST_MPL_AUX_DEREF_WNKD_HPP_INCLUDED + +#include "boost/mpl/aux_/config/eti.hpp" + +#if defined(BOOST_MPL_MSVC_ETI_BUG) + +namespace boost { namespace mpl { namespace aux { + +template< typename Iterator > +struct deref_wknd +{ + typedef typename Iterator::type type; +}; + +template<> struct deref_wknd +{ + typedef deref_wknd type; +}; + +}}} // namespace boost::mpl::aux + +# define BOOST_MPL_AUX_DEREF_WNKD(iter) aux::deref_wknd::type + +#else + +# define BOOST_MPL_AUX_DEREF_WNKD(iter) iter::type + +#endif + +#endif // BOOST_MPL_AUX_DEREF_WNKD_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/empty_impl.hpp b/include/boost/mpl/aux_/empty_impl.hpp new file mode 100644 index 0000000..f42876e --- /dev/null +++ b/include/boost/mpl/aux_/empty_impl.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/empty_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED + +#include "boost/mpl/empty_fwd.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |empty_traits| or the primary |empty| template + +template< typename Tag > +struct empty_traits +{ + template< typename Sequence > struct algorithm + : is_same< + typename begin::type + , typename end::type + > + { + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,empty_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_EMPTY_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/erase_impl.hpp b/include/boost/mpl/aux_/erase_impl.hpp new file mode 100644 index 0000000..996a1a2 --- /dev/null +++ b/include/boost/mpl/aux_/erase_impl.hpp @@ -0,0 +1,74 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/erase_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED + +#include "boost/mpl/clear.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/copy_backward.hpp" +#include "boost/mpl/iterator_range.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |erase_traits| or the primary |erase| template + +template< typename Tag > +struct erase_traits +{ + template< + typename Sequence + , typename First + , typename Last + > + struct algorithm + { + private: + // 1st half: [begin, first) + typedef iterator_range< + typename begin::type + , First + > first_half_; + + // 2nd half: [last, end) ... that is, [last + 1, end) + typedef iterator_range< + Last + , typename end::type + > second_half_; + + typedef typename copy_backward< + second_half_ + , typename clear::type + , push_front<_,_> + >::type half_sequence_; + + public: + typedef typename copy_backward< + first_half_ + , half_sequence_ + , push_front<_,_> + >::type type; + }; + +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_ERASE_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/fold_backward_impl.hpp b/include/boost/mpl/aux_/fold_backward_impl.hpp new file mode 100644 index 0000000..65ddc58 --- /dev/null +++ b/include/boost/mpl/aux_/fold_backward_impl.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_backward_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_FOLD_BACKWARD_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_FOLD_BACKWARD_IMPL_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/aux_/config/eti.hpp" +#include "boost/config.hpp" + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/if.hpp" +# include "boost/type_traits/is_same.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER fold_backward_impl.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# define BOOST_MPL_AUX_FOLD_IMPL_OP(iter) typename iter::type +# define BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX fold_backward +# include "boost/mpl/aux_/fold_backward_impl_body.hpp" + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_FOLD_BACKWARD_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/fold_backward_impl_body.hpp b/include/boost/mpl/aux_/fold_backward_impl_body.hpp new file mode 100644 index 0000000..53bb1ae --- /dev/null +++ b/include/boost/mpl/aux_/fold_backward_impl_body.hpp @@ -0,0 +1,406 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_backward_impl_body.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if !defined(BOOST_PP_IS_ITERATING) + +# include "boost/mpl/aux_/apply.hpp" +# include "boost/mpl/aux_/next.hpp" +# include "boost/config.hpp" + +# include "boost/mpl/limits/unrolling.hpp" +# include "boost/mpl/aux_/preprocessor/repeat.hpp" + +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/dec.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +// local macros, #undef-ined at the end of the header + +# define AUX_ITER_FOLD_FORWARD_STEP(i, unused) \ + typedef typename BOOST_MPL_AUX_APPLY2( \ + ForwardOp \ + , BOOST_PP_CAT(fwd_state,i) \ + , BOOST_MPL_AUX_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \ + )::type BOOST_PP_CAT(fwd_state,BOOST_PP_INC(i)); \ + typedef typename BOOST_MPL_AUX_NEXT(BOOST_PP_CAT(iter,i)) \ + BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \ + /**/ + +# define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \ + typedef typename BOOST_MPL_AUX_APPLY2( \ + BackwardOp \ + , BOOST_PP_CAT(bkwd_state,i) \ + , BOOST_MPL_AUX_FOLD_IMPL_OP(BOOST_PP_CAT(iter,BOOST_PP_DEC(i))) \ + )::type BOOST_PP_CAT(bkwd_state,BOOST_PP_DEC(i)); \ + /**/ + +# define AUX_ITER_FOLD_BACKWARD_STEP(i, j) \ + AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \ + BOOST_PP_SUB_D(1,j,i) \ + ) \ + /**/ + +# define AUX_FIRST_BACKWARD_STATE_TYPEDEF(i) \ + typedef typename nested_chunk::state BOOST_PP_CAT(bkwd_state,i); + /**/ + +# define AUX_FOLD_IMPL_NAME \ + BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_impl) \ + /**/ + +# define AUX_FOLD_CHUNK_NAME \ + BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_chunk) \ + /**/ + +namespace boost { +namespace mpl { +namespace aux { + +//: forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/fold_backward_impl_body.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef First iter0; + typedef State fwd_state0; + + BOOST_MPL_PP_REPEAT( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_FORWARD_STEP + , unused + ) + + typedef AUX_FOLD_IMPL_NAME< + ( (N - BOOST_MPL_UNROLLING_LIMIT) < 0 ? 0 : N - BOOST_MPL_UNROLLING_LIMIT ) + , BOOST_PP_CAT(iter,BOOST_MPL_UNROLLING_LIMIT) + , Last + , BOOST_PP_CAT(fwd_state,BOOST_MPL_UNROLLING_LIMIT) + , BackwardOp + , ForwardOp + > nested_chunk; + + AUX_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_UNROLLING_LIMIT) + + BOOST_MPL_PP_REPEAT( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_BACKWARD_STEP + , BOOST_MPL_UNROLLING_LIMIT + ) + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +// fallback implementation for sequences of unknown size +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME<-1,First,Last,State,BackwardOp,ForwardOp> +{ + typedef AUX_FOLD_IMPL_NAME< + -1 + , typename BOOST_MPL_AUX_NEXT(First) + , Last + , typename BOOST_MPL_AUX_APPLY2(ForwardOp,State,BOOST_MPL_AUX_FOLD_IMPL_OP(First))::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BOOST_MPL_AUX_APPLY2( + BackwardOp + , typename nested_step::state + , BOOST_MPL_AUX_FOLD_IMPL_OP(First) + )::type state; + + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME<-1,Last,Last,State,BackwardOp,ForwardOp> +{ + typedef State state; + typedef Last iterator; +}; + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +template< long > +struct AUX_FOLD_CHUNK_NAME; + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/fold_backward_impl_body.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< long N > +struct AUX_FOLD_CHUNK_NAME +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + + BOOST_MPL_PP_REPEAT( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_FORWARD_STEP + , unused + ) + + typedef AUX_FOLD_IMPL_NAME< + ( (N - BOOST_MPL_UNROLLING_LIMIT) < 0 ? 0 : N - BOOST_MPL_UNROLLING_LIMIT ) + , BOOST_PP_CAT(iter,BOOST_MPL_UNROLLING_LIMIT) + , Last + , BOOST_PP_CAT(fwd_state,BOOST_MPL_UNROLLING_LIMIT) + , BackwardOp + , ForwardOp + > nested_chunk; + + AUX_FIRST_BACKWARD_STATE_TYPEDEF(BOOST_MPL_UNROLLING_LIMIT) + + BOOST_MPL_PP_REPEAT( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_BACKWARD_STEP + , BOOST_MPL_UNROLLING_LIMIT + ) + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +// fallback implementation for sequences of unknown size +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step); + +template< + typename Last + , typename State + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_null_step) +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct AUX_FOLD_CHUNK_NAME<-1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same::type + , BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_null_step) + , BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step) + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step) +{ + typedef AUX_FOLD_CHUNK_NAME<-1>::template result_< + typename BOOST_MPL_AUX_NEXT(First) + , Last + , typename BOOST_MPL_AUX_APPLY2(ForwardOp,State,BOOST_MPL_AUX_FOLD_IMPL_OP(First))::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BOOST_MPL_AUX_APPLY2( + BackwardOp + , typename nested_step::state + , BOOST_MPL_AUX_FOLD_IMPL_OP(First) + )::type state; + + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME + : AUX_FOLD_CHUNK_NAME + ::template result_ +{ +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux +} // namespace mpl +} // namespace boost + +# undef AUX_FIRST_BACKWARD_STATE_TYPEDEF +# undef AUX_ITER_FOLD_BACKWARD_STEP +# undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC +# undef AUX_ITER_FOLD_FORWARD_STEP + +#undef BOOST_MPL_AUX_FOLD_IMPL_OP +#undef BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef First iter0; + typedef State fwd_state0; + + BOOST_MPL_PP_REPEAT( + i + , AUX_ITER_FOLD_FORWARD_STEP + , unused + ) + + typedef BOOST_PP_CAT(fwd_state,i) BOOST_PP_CAT(bkwd_state,i); + + BOOST_MPL_PP_REPEAT( + i + , AUX_ITER_FOLD_BACKWARD_STEP + , i + ) + + typedef bkwd_state0 state; + typedef BOOST_PP_CAT(iter,i) iterator; +}; + +#else + +template<> +struct AUX_FOLD_CHUNK_NAME +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + + BOOST_MPL_PP_REPEAT( + i + , AUX_ITER_FOLD_FORWARD_STEP + , unused + ) + + typedef BOOST_PP_CAT(fwd_state,i) BOOST_PP_CAT(bkwd_state,i); + + BOOST_MPL_PP_REPEAT( + i + , AUX_ITER_FOLD_BACKWARD_STEP + , i + ) + + typedef bkwd_state0 state; + typedef BOOST_PP_CAT(iter,i) iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/fold_impl.hpp b/include/boost/mpl/aux_/fold_impl.hpp new file mode 100644 index 0000000..b1f9562 --- /dev/null +++ b/include/boost/mpl/aux_/fold_impl.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/config.hpp" + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/if.hpp" +# include "boost/type_traits/is_same.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER fold_impl.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# define BOOST_MPL_AUX_FOLD_IMPL_OP(iter) typename iter::type +# define BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX fold +# include "boost/mpl/aux_/fold_impl_body.hpp" + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_FOLD_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/fold_impl_body.hpp b/include/boost/mpl/aux_/fold_impl_body.hpp new file mode 100644 index 0000000..b7d2f89 --- /dev/null +++ b/include/boost/mpl/aux_/fold_impl_body.hpp @@ -0,0 +1,365 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_impl_body.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if !defined(BOOST_PP_IS_ITERATING) + +# include "boost/mpl/aux_/apply.hpp" +# include "boost/mpl/aux_/next.hpp" +# include "boost/config.hpp" + +# include "boost/mpl/limits/unrolling.hpp" +# include "boost/mpl/aux_/preprocessor/repeat.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/dec.hpp" +# include "boost/preprocessor/cat.hpp" + +// local macros, #undef-ined at the end of the header + +# define AUX_ITER_FOLD_STEP(i, unused) \ + typedef typename BOOST_MPL_AUX_APPLY2( \ + ForwardOp \ + , BOOST_PP_CAT(state,i) \ + , BOOST_MPL_AUX_FOLD_IMPL_OP(BOOST_PP_CAT(iter,i)) \ + )::type BOOST_PP_CAT(state,BOOST_PP_INC(i)); \ + typedef typename BOOST_MPL_AUX_NEXT(BOOST_PP_CAT(iter,i)) \ + BOOST_PP_CAT(iter,BOOST_PP_INC(i)); \ + /**/ + +# define AUX_FOLD_IMPL_NAME \ + BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_impl) \ + /**/ + +# define AUX_FOLD_CHUNK_NAME \ + BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_chunk) \ + /**/ + +namespace boost { +namespace mpl { +namespace aux { + +//: forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +# if !defined(__BORLANDC__) + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/fold_impl_body.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef AUX_FOLD_IMPL_NAME< + BOOST_MPL_UNROLLING_LIMIT + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef AUX_FOLD_IMPL_NAME< + ( (N - BOOST_MPL_UNROLLING_LIMIT) < 0 ? 0 : N - BOOST_MPL_UNROLLING_LIMIT ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +// fallback implementation for sequences of unknown size +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME<-1,First,Last,State,ForwardOp> + : AUX_FOLD_IMPL_NAME< + -1 + , typename BOOST_MPL_AUX_NEXT(First) + , Last + , typename BOOST_MPL_AUX_APPLY2(ForwardOp,State,BOOST_MPL_AUX_FOLD_IMPL_OP(First))::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME<-1,Last,Last,State,ForwardOp> +{ + typedef State state; + typedef Last iterator; +}; + +# else // __BORLANDC__ + +// Borland have some serious problems with the unrolled version, so +// we always use a basic implementation +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef AUX_FOLD_IMPL_NAME< + -1 + , typename First::next + , Last + , typename BOOST_MPL_AUX_APPLY2(ForwardOp,State,BOOST_MPL_AUX_FOLD_IMPL_OP(First))::type + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + typedef state type; +}; + +template< + long N + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef State state; + typedef Last iterator; + typedef state type; +}; + +# endif // __BORLANDC__ + +#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +template< long > +struct AUX_FOLD_CHUNK_NAME; + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_UNROLLING_LIMIT, "boost/mpl/aux_/fold_impl_body.hpp")) +# include BOOST_PP_ITERATE() + +// implementation for N that exceeds BOOST_MPL_UNROLLING_LIMIT +template< long N > +struct AUX_FOLD_CHUNK_NAME +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef AUX_FOLD_IMPL_NAME< + BOOST_MPL_UNROLLING_LIMIT + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef AUX_FOLD_IMPL_NAME< + ( (N - BOOST_MPL_UNROLLING_LIMIT) < 0 ? 0 : N - BOOST_MPL_UNROLLING_LIMIT ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +// fallback implementation for sequences of unknown size +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step); + +template< + typename Last + , typename State + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_null_step) +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct AUX_FOLD_CHUNK_NAME<-1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same::type + , BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_null_step) + , BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step) + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct BOOST_PP_CAT(BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX,_step) +{ + // can't inherit here - it breaks MSVC 7.0 + typedef AUX_FOLD_CHUNK_NAME<-1>::template result_< + typename BOOST_MPL_AUX_NEXT(First) + , Last + , typename BOOST_MPL_AUX_APPLY2(ForwardOp,State,BOOST_MPL_AUX_FOLD_IMPL_OP(First))::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME + : AUX_FOLD_CHUNK_NAME + ::template result_ +{ +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux +} // namespace mpl +} // namespace boost + +# undef AUX_FOLD_IMPL_NAME +# undef AUX_FOLD_CHUNK_NAME +# undef AUX_ITER_FOLD_STEP + +#undef BOOST_MPL_AUX_FOLD_IMPL_OP +#undef BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX + +///// iteration + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct AUX_FOLD_IMPL_NAME +{ + typedef First iter0; + typedef State state0; + + BOOST_MPL_PP_REPEAT( + BOOST_PP_FRAME_ITERATION(1) + , AUX_ITER_FOLD_STEP + , unused + ) + + typedef BOOST_PP_CAT(state,BOOST_PP_FRAME_ITERATION(1)) state; + typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) iterator; +}; + +#else + +template<> +struct AUX_FOLD_CHUNK_NAME +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + + BOOST_MPL_PP_REPEAT( + BOOST_PP_FRAME_ITERATION(1) + , AUX_ITER_FOLD_STEP + , unused + ) + + typedef BOOST_PP_CAT(state,BOOST_PP_FRAME_ITERATION(1)) state; + typedef BOOST_PP_CAT(iter,BOOST_PP_FRAME_ITERATION(1)) iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/fold_op.hpp b/include/boost/mpl/aux_/fold_op.hpp new file mode 100644 index 0000000..b804015 --- /dev/null +++ b/include/boost/mpl/aux_/fold_op.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_op.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED +#define BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// hand-written version is more efficient than bind/lambda expression +template< typename Op > +struct fold_op +{ + template< typename T1, typename T2 > struct apply + { + typedef typename apply2< + Op + , T1 + , typename T2::type + >::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_FOLD_OP_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/fold_pred.hpp b/include/boost/mpl/aux_/fold_pred.hpp new file mode 100644 index 0000000..a27e3dc --- /dev/null +++ b/include/boost/mpl/aux_/fold_pred.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/fold_pred.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED +#define BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED + +#include "boost/mpl/same_as.hpp" +#include "boost/mpl/apply.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Last > +struct fold_pred +{ + template< + typename State + , typename Iterator + > + struct apply + : not_same_as::template apply + { + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_FOLD_PRED_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/front_impl.hpp b/include/boost/mpl/aux_/front_impl.hpp new file mode 100644 index 0000000..21510c3 --- /dev/null +++ b/include/boost/mpl/aux_/front_impl.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/front_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED + +#include "boost/mpl/front_fwd.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/aux_/deref_wknd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |front_traits| or the primary |front| template + +template< typename Tag > +struct front_traits +{ + template< typename Sequence > struct algorithm + { + typedef typename begin::type iter_; + typedef typename BOOST_MPL_AUX_DEREF_WNKD(iter_) type; + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,front_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_FRONT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/full_lambda.hpp b/include/boost/mpl/aux_/full_lambda.hpp new file mode 100644 index 0000000..f4eabd5 --- /dev/null +++ b/include/boost/mpl/aux_/full_lambda.hpp @@ -0,0 +1,364 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/full_lambda.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED +#define BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/lambda_fwd.hpp" +# include "boost/mpl/bind.hpp" +# include "boost/mpl/protect.hpp" +# include "boost/mpl/meta_fun.hpp" +# include "boost/mpl/bool_c.hpp" +# include "boost/mpl/aux_/template_arity.hpp" +# include "boost/mpl/aux_/config/ttp.hpp" +#endif + +#include "boost/mpl/aux_/lambda_expr.hpp" +#include "boost/mpl/aux_/lambda_arity_param.hpp" +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER full_lambda.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/preprocessor/default_params.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/preprocessor/enum.hpp" +# include "boost/mpl/aux_/preprocessor/repeat.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +namespace boost { +namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX_LAMBDA_PARAMS(i, param) \ + BOOST_MPL_PP_PARAMS(i, param) \ + /**/ + +# define AUX_LAMBDA_BIND_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + ) \ + /**/ + +# define AUX_LAMBDA_BIND_N_PARAMS(i, param) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_MPL_PP_PARAMS(i, param) \ + /**/ + +# define AUX_ARITY_PARAM(param) \ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) \ + /**/ + +template< + typename T + , bool Protect = false + AUX_ARITY_PARAM(long Arity = aux::template_arity::value) + > +struct lambda_impl +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef T type; +}; + +template< + typename T + AUX_ARITY_PARAM(long Arity = aux::template_arity::value) + > +struct lambda + : lambda_impl +{ +}; + +#if !defined(BOOST_MPL_NO_LAMBDA_HEURISTIC) + +#define n BOOST_MPL_METAFUNCTION_MAX_ARITY +namespace aux { + +template< + BOOST_MPL_PP_DEFAULT_PARAMS(n,bool C,false) + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< BOOST_MPL_PP_ENUM(n,false) > + : false_c +{ +}; + +} // namespace aux +#undef n + +template< int N, bool Protect AUX_ARITY_PARAM(long Arity) > +struct lambda_impl< arg, Protect AUX_ARITY_PARAM(Arity) > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(true_c) + typedef arg type; +}; + +#endif // BOOST_MPL_NO_LAMBDA_HEURISTIC + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/aux_/full_lambda.hpp")) +#include BOOST_PP_ITERATE() + +//: special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect, Protect AUX_ARITY_PARAM(-1) > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef protect type; +}; + +//: specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, AUX_LAMBDA_BIND_PARAMS(typename T) + , bool Protect + > +struct lambda_impl< bind, Protect AUX_ARITY_PARAM(-1) > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef bind type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st, Protect AUX_ARITY_PARAM(-1) > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef bind1st type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd, Protect AUX_ARITY_PARAM(-1) > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef bind2nd type; +}; + +# undef AUX_ARITY_PARAM +# undef AUX_LAMBDA_BIND_N_PARAMS +# undef AUX_LAMBDA_BIND_PARAMS +# undef AUX_LAMBDA_PARAMS + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_FULL_LAMBDA_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 +#define i BOOST_PP_FRAME_ITERATION(1) + +#if i > 0 +#if defined(BOOST_MPL_NO_LAMBDA_HEURISTIC) + +#if !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(0, 0, "boost/mpl/aux_/full_lambda.hpp")) +#else +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(0, 1, "boost/mpl/aux_/full_lambda.hpp")) +#endif + +#include BOOST_PP_ITERATE() + +#else // BOOST_MPL_NO_LAMBDA_HEURISTIC + +# define AUX_LAMBDA_RESULT(i, T) \ + BOOST_PP_COMMA_IF(i) \ + typename BOOST_PP_CAT(T, BOOST_PP_INC(i))::type \ + /**/ + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename L) + > +struct BOOST_PP_CAT(le_result,i) +{ + typedef F< + BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_RESULT, L) + > type; +}; + +template< + template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename L) + > +struct BOOST_PP_CAT(le_result,i)< true,false,F,AUX_LAMBDA_PARAMS(i, L) > +{ + typedef BOOST_PP_CAT(bind,i)< + BOOST_PP_CAT(meta_fun,i) + , BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_RESULT, L) + > type; +}; + +template< + template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename L) + > +struct BOOST_PP_CAT(le_result,i)< true,true,F,AUX_LAMBDA_PARAMS(i, L) > +{ + typedef protect< BOOST_PP_CAT(bind,i)< + BOOST_PP_CAT(meta_fun,i) + , BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_RESULT, L) + > > type; +}; + +} // namespace aux + +# define AUX_LAMBDA_INVOCATION(i, T) \ + typedef lambda_impl< BOOST_PP_CAT(T, BOOST_PP_INC(i)) > \ + BOOST_PP_CAT(l,BOOST_PP_INC(i)); \ + /**/ + +# define AUX_IS_LAMBDA_EXPR(i, unused) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_PP_CAT(l,BOOST_PP_INC(i))::is_le::value \ + /**/ + +#if !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(0, 0, "boost/mpl/aux_/full_lambda.hpp")) +#else +# define BOOST_PP_ITERATION_PARAMS_2 \ + (3,(0, 1, "boost/mpl/aux_/full_lambda.hpp")) +#endif + +#include BOOST_PP_ITERATE() + +# undef AUX_IS_LAMBDA_EXPR +# undef AUX_LAMBDA_INVOCATION +# undef AUX_LAMBDA_RESULT + +#endif // BOOST_MPL_NO_LAMBDA_HEURISTIC +#endif // i > 0 + +template< + typename F AUX_LAMBDA_BIND_N_PARAMS(i, typename T) + , bool Protect AUX_ARITY_PARAM(long Arity) + > +struct lambda_impl< + BOOST_PP_CAT(bind,i) + , Protect AUX_ARITY_PARAM(Arity) + > +{ + BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) + typedef BOOST_PP_CAT(bind,i)< + F + AUX_LAMBDA_BIND_N_PARAMS(i, T) + > type; +}; + +#undef i + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +#if BOOST_PP_FRAME_ITERATION(2) > 0 +# define AUX_LAMBDA_IMPL_ARITY AUX_ARITY_PARAM(i) +#else +# define AUX_LAMBDA_IMPL_ARITY AUX_ARITY_PARAM(-1) +#endif + +template< + template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename T) + > +struct lambda< F AUX_LAMBDA_IMPL_ARITY > + : lambda_impl< F, true AUX_LAMBDA_IMPL_ARITY > +{ +}; + +#if defined(BOOST_MPL_NO_LAMBDA_HEURISTIC) + +template< + template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename T) + , bool Protect + > +struct lambda_impl< F, Protect AUX_LAMBDA_IMPL_ARITY > +{ +# define AUX_LAMBDA_INVOCATION(i, T) \ + BOOST_PP_COMMA_IF(i) \ + typename lambda_impl< BOOST_PP_CAT(T, BOOST_PP_INC(i)) >::type \ + /**/ + + typedef BOOST_PP_CAT(bind,i)< + BOOST_PP_CAT(meta_fun,i) + , BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_INVOCATION, T) + > type; + +# undef AUX_LAMBDA_INVOCATION +}; + +#else + +template< + template< AUX_LAMBDA_PARAMS(i, typename P) > class F + , AUX_LAMBDA_PARAMS(i, typename T) + , bool Protect + > +struct lambda_impl< F, Protect AUX_LAMBDA_IMPL_ARITY > +{ + BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_INVOCATION, T) + typedef aux::lambda_or< + BOOST_MPL_PP_REPEAT(i, AUX_IS_LAMBDA_EXPR, unused) + > is_le; + + typedef typename aux::BOOST_PP_CAT(le_result,i)< + is_le::value + , Protect + , F + , AUX_LAMBDA_PARAMS(i, l) + >::type type; +}; + +#endif // BOOST_MPL_NO_LAMBDA_HEURISTIC + +# undef AUX_LAMBDA_IMPL_ARITY + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/has_rebind.hpp b/include/boost/mpl/aux_/has_rebind.hpp new file mode 100644 index 0000000..a76e351 --- /dev/null +++ b/include/boost/mpl/aux_/has_rebind.hpp @@ -0,0 +1,114 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/has_rebind.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED +#define BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED + +#include "boost/mpl/aux_/type_wrapper.hpp" +#include "boost/mpl/aux_/yes_no.hpp" +#include "boost/mpl/aux_/config/msvc_typename.hpp" +#include "boost/mpl/aux_/config/overload_resolution.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +#if !defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION) +#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 + +// the implementation below is based on a USENET newsgroup's posting by +// Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST) + +template< typename T > +yes_tag +has_rebind_helper(type_wrapper, BOOST_MSVC_TYPENAME T::rebind*); + +template< typename T > +no_tag +has_rebind_helper(type_wrapper, ...); + +template< typename T > +struct has_rebind +{ + BOOST_STATIC_CONSTANT(bool, value = + sizeof(has_rebind_helper(type_wrapper(), 0)) + == sizeof(yes_tag) + ); +}; + +#else + +// agurt, 11/sep/02: MSVC version, based on a USENET newsgroup's posting by +// John Madsen (comp.lang.c++.moderated, 1999-11-12 19:17:06 GMT); +// note that the code is _not_ standard-conforming, but it works, +// and it resolves some nasty ICE cases with the above implementation + +template< typename T, typename rebind = int > +struct has_rebind : T +{ + private: + static no_tag test(int*); + static yes_tag test(...); + + public: + BOOST_STATIC_CONSTANT(bool, value = + sizeof(test(static_cast(0))) != sizeof(no_tag) + ); +}; + +# define AUX_HAS_REBIND_SPEC(T) \ + template<> struct has_rebind \ + { \ + enum { value = false }; \ + }; \ + /**/ + +AUX_HAS_REBIND_SPEC(bool) +AUX_HAS_REBIND_SPEC(char) +AUX_HAS_REBIND_SPEC(signed char) +AUX_HAS_REBIND_SPEC(unsigned char) +#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) +AUX_HAS_REBIND_SPEC(wchar_t) +#endif +AUX_HAS_REBIND_SPEC(signed short) +AUX_HAS_REBIND_SPEC(unsigned short) +AUX_HAS_REBIND_SPEC(signed int) +AUX_HAS_REBIND_SPEC(unsigned int) +AUX_HAS_REBIND_SPEC(signed long) +AUX_HAS_REBIND_SPEC(unsigned long) +AUX_HAS_REBIND_SPEC(float) +AUX_HAS_REBIND_SPEC(double) +AUX_HAS_REBIND_SPEC(long double) + +# undef AUX_HAS_REBIND_SPEC + +#endif // BOOST_MSVC > 1300 +#else + +template< typename T > +struct has_rebind +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#endif + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_HAS_REBIND_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/has_size.hpp b/include/boost/mpl/aux_/has_size.hpp new file mode 100644 index 0000000..2f210cd --- /dev/null +++ b/include/boost/mpl/aux_/has_size.hpp @@ -0,0 +1,63 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/has_size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED +#define BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED + +#include "boost/mpl/aux_/type_wrapper.hpp" +#include "boost/mpl/aux_/yes_no.hpp" +#include "boost/mpl/aux_/config/msvc_typename.hpp" +#include "boost/mpl/aux_/config/overload_resolution.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +#if !defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION) + +// the implementation below is based on a USENET newsgroup posting by +// Rani Sharoni (comp.lang.c++.moderated, 2002-03-17 07:45:09 PST) + +template< typename T > +yes_tag has_size_helper(type_wrapper, BOOST_MSVC_TYPENAME T::size*); + +template< typename T > +no_tag has_size_helper(type_wrapper, ...); + +template< typename T > +struct has_size +{ + BOOST_STATIC_CONSTANT(bool, value = + sizeof(has_size_helper(type_wrapper(), 0)) == sizeof(yes_tag) + ); +}; + +#else + +template< typename T > +struct has_size +{ + BOOST_STATIC_CONSTANT(bool, value = false); +}; + +#endif + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_HAS_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/include_preprocessed.hpp b/include/boost/mpl/aux_/include_preprocessed.hpp new file mode 100644 index 0000000..a179fed --- /dev/null +++ b/include/boost/mpl/aux_/include_preprocessed.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/include_preprocessed.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#include "boost/mpl/aux_/config/compiler.hpp" +#include "boost/preprocessor/cat.hpp" +#include "boost/preprocessor/stringize.hpp" + +// local macro, #undef-ined at the end of the header +#define AUX_PREPROCESSED_HEADER \ + BOOST_PP_STRINGIZE( \ + BOOST_PP_CAT( \ + BOOST_PP_CAT( \ + boost/mpl/aux_/preprocessed/ \ + , BOOST_MPL_COMPILER_DIR \ + ) \ + , BOOST_MPL_PREPROCESSED_HEADER \ + ) \ + ) \ +/**/ + +#include AUX_PREPROCESSED_HEADER + +#undef AUX_PREPROCESSED_HEADER +#undef BOOST_MPL_PREPROCESSED_HEADER diff --git a/include/boost/mpl/aux_/insert_impl.hpp b/include/boost/mpl/aux_/insert_impl.hpp new file mode 100644 index 0000000..fcf225e --- /dev/null +++ b/include/boost/mpl/aux_/insert_impl.hpp @@ -0,0 +1,73 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/insert_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INSERT_IMPL_HPP_INCLUDED +#define BOOST_MPL_INSERT_IMPL_HPP_INCLUDED + +#include "boost/mpl/copy_backward.hpp" +#include "boost/mpl/iterator_range.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |insert_traits| or the primary |insert| template + +template< typename Tag > +struct insert_traits +{ + template< + typename Sequence + , typename Pos + , typename T + > + struct algorithm + { + typedef iterator_range< + typename begin::type + , Pos + > first_half_; + + typedef iterator_range< + Pos + , typename end::type + > second_half_; + + typedef typename copy_backward< + second_half_ + , typename clear::type + , push_front<_,_> + >::type half_sequence_; + + typedef typename copy_backward< + first_half_ + , typename push_front::type + , push_front<_,_> + >::type type; + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INSERT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/insert_range_impl.hpp b/include/boost/mpl/aux_/insert_range_impl.hpp new file mode 100644 index 0000000..ecdef71 --- /dev/null +++ b/include/boost/mpl/aux_/insert_range_impl.hpp @@ -0,0 +1,85 @@ +//----------------------------------------------------------------------------- +// boost mpl/insert_range_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED + +#include "boost/mpl/iter_fold_backward.hpp" +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/identity.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/iter_push_front.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" +#include "boost/type_traits/same_traits.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |insert_range_traits| or the primary +// |insert_range| template + +namespace aux { + +template< + typename Pos + , typename Range + > +struct iter_range_inserter +{ + template< typename Sequence, typename Iterator > struct apply + { + typedef typename aux::iter_push_front< + typename apply_if< + is_same + , fold_backward< Range, Sequence, push_front<_,_> > + , identity + >::type + , Iterator + >::type type; + }; +}; + +} // namespace aux + + +template< typename Tag > +struct insert_range_traits +{ + template< + typename Sequence + , typename Pos + , typename Range + > + struct algorithm + { + typedef typename iter_fold_backward< + Sequence + , typename clear::type + , aux::iter_range_inserter + >::type type; + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(3,insert_range_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_INSERT_RANGE_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_apply.hpp b/include/boost/mpl/aux_/iter_apply.hpp new file mode 100644 index 0000000..b81a988 --- /dev/null +++ b/include/boost/mpl/aux_/iter_apply.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_apply.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITER_APPLY_HPP_INCLUDED +#define BOOST_MPL_ITER_APPLY_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +template< + typename F + , typename Iterator + > +struct iter_apply1 + : apply1 +{ +}; + +template< + typename F + , typename Iterator1 + , typename Iterator2 + > +struct iter_apply2 + : apply2< + F + , typename Iterator1::type + , typename Iterator2::type + > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITER_APPLY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_distance.hpp b/include/boost/mpl/aux_/iter_distance.hpp new file mode 100644 index 0000000..555b3d5 --- /dev/null +++ b/include/boost/mpl/aux_/iter_distance.hpp @@ -0,0 +1,62 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_distance.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITER_DISTANCE_HPP_INCLUDED +#define BOOST_MPL_AUX_ITER_DISTANCE_HPP_INCLUDED + +#include "boost/mpl/aux_/iterator_names.hpp" +#include "boost/mpl/aux_/msvc_never_true.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 + +// msvc_distance +#define BOOST_MPL_AUX_MSVC_DTW_NAME msvc_distance +#define BOOST_MPL_AUX_MSVC_DTW_ORIGINAL_NAME BOOST_MPL_AUX_ITERATOR_DISTANCE +#define BOOST_MPL_AUX_MSVC_DTW_ARITY 1 +#include "boost/mpl/aux_/msvc_dtw.hpp" + +template< + typename Iterator + , typename Other + > +struct iter_distance + : msvc_distance::template result_ +{ +}; + +#else + +template< + typename Iterator + , typename Other + > +struct iter_distance + : Iterator::template BOOST_MPL_AUX_ITERATOR_DISTANCE +{ +}; + +#endif + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_ITER_DISTANCE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..77cfde6 --- /dev/null +++ b/include/boost/mpl/aux_/iter_fold_backward_impl.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_fold_backward_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/aux_/config/eti.hpp" +#include "boost/config.hpp" + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/if.hpp" +# include "boost/type_traits/is_same.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_backward_impl.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# define BOOST_MPL_AUX_FOLD_IMPL_OP(iter) iter +# define BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX iter_fold_backward +# include "boost/mpl/aux_/fold_backward_impl_body.hpp" + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_ITER_FOLD_BACKWARD_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/iter_fold_if_impl.hpp new file mode 100644 index 0000000..cd0cea2 --- /dev/null +++ b/include/boost/mpl/aux_/iter_fold_if_impl.hpp @@ -0,0 +1,217 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_fold_if_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy, David Abrahams +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/identity.hpp" +# include "boost/mpl/next.hpp" +# include "boost/mpl/if.hpp" +# include "boost/mpl/aux_/bool_value_wknd.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_if_impl.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/unrolling.hpp" +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/dec.hpp" +# include "boost/preprocessor/cat.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename BOOST_MPL_AUX_APPLY2(StateOp,State,Iterator)::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +// agurt, 25/jun/02: MSVC 6.5 workaround, had to get rid of inheritance +// here and in 'iter_fold_if_backward_step', because sometimes it interfered +// with the "early template instantiation bug" in _really_ ugly ways +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename BOOST_MPL_AUX_APPLY2(Predicate,State,Iterator)::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename BOOST_MPL_AUX_APPLY2(Predicate,State,Iterator)::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + + +// local macros, #undef-ined at the end of the header + +# define AUX_ITER_FOLD_FORWARD_STEP(i, unused) \ + typedef iter_fold_if_forward_step< \ + typename BOOST_PP_CAT(forward_step,i)::iterator \ + , typename BOOST_PP_CAT(forward_step,i)::state \ + , ForwardOp \ + , ForwardPredicate \ + > BOOST_PP_CAT(forward_step, BOOST_PP_INC(i)); \ + /**/ + +# define AUX_ITER_FOLD_BACKWARD_STEP_FUNC(i) \ + typedef iter_fold_if_backward_step< \ + typename BOOST_PP_CAT(forward_step,BOOST_PP_DEC(i))::iterator \ + , typename BOOST_PP_CAT(backward_step,i)::state \ + , BackwardOp \ + , BackwardPredicate \ + > BOOST_PP_CAT(backward_step,BOOST_PP_DEC(i)); \ + /**/ + +# define AUX_ITER_FOLD_BACKWARD_STEP(i, unused) \ + AUX_ITER_FOLD_BACKWARD_STEP_FUNC( \ + BOOST_PP_SUB_D(1,BOOST_MPL_UNROLLING_LIMIT,i) \ + ) \ + /**/ + +# define AUX_LAST_FORWARD_STEP \ + BOOST_PP_CAT(forward_step, BOOST_MPL_UNROLLING_LIMIT) \ + /**/ + +# define AUX_LAST_BACKWARD_STEP \ + BOOST_PP_CAT(backward_step, BOOST_MPL_UNROLLING_LIMIT) \ + /**/ + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step forward_step0; + BOOST_PP_REPEAT_1ST( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_FORWARD_STEP + , unused + ) + + typedef typename if_< + typename AUX_LAST_FORWARD_STEP::not_last + , iter_fold_if_impl< + typename AUX_LAST_FORWARD_STEP::iterator + , typename AUX_LAST_FORWARD_STEP::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename AUX_LAST_FORWARD_STEP::iterator + , typename AUX_LAST_FORWARD_STEP::state + > + >::type AUX_LAST_BACKWARD_STEP; + + BOOST_PP_REPEAT_1ST( + BOOST_MPL_UNROLLING_LIMIT + , AUX_ITER_FOLD_BACKWARD_STEP + , unused + ) + + public: + typedef typename backward_step0::state state; + typedef typename AUX_LAST_BACKWARD_STEP::iterator iterator; +}; + +# undef AUX_LAST_BACKWARD_STEP +# undef AUX_LAST_FORWARD_STEP +# undef AUX_ITER_FOLD_BACKWARD_STEP +# undef AUX_ITER_FOLD_BACKWARD_STEP_FUNC +# undef AUX_ITER_FOLD_FORWARD_STEP + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_ITER_FOLD_IF_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_fold_impl.hpp b/include/boost/mpl/aux_/iter_fold_impl.hpp new file mode 100644 index 0000000..74e311f --- /dev/null +++ b/include/boost/mpl/aux_/iter_fold_impl.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_fold_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/aux_/config/eti.hpp" +#include "boost/config.hpp" + +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/if.hpp" +# include "boost/type_traits/is_same.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER iter_fold_impl.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# define BOOST_MPL_AUX_FOLD_IMPL_OP(iter) iter +# define BOOST_MPL_AUX_FOLD_IMPL_NAME_PREFIX iter_fold +# include "boost/mpl/aux_/fold_impl_body.hpp" + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_ITER_FOLD_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iter_push_front.hpp b/include/boost/mpl/aux_/iter_push_front.hpp new file mode 100644 index 0000000..e55bcb5 --- /dev/null +++ b/include/boost/mpl/aux_/iter_push_front.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iter_push_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED +#define BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED + +#include "boost/mpl/push_front.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +template< + typename Sequence + , typename Iterator + > +struct iter_push_front +{ + typedef typename push_front< + Sequence + , typename Iterator::type + >::type type; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITER_PUSH_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iterator_category.hpp b/include/boost/mpl/aux_/iterator_category.hpp new file mode 100644 index 0000000..8f06e4c --- /dev/null +++ b/include/boost/mpl/aux_/iterator_category.hpp @@ -0,0 +1,33 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iterator_category.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITERATOR_CATEGORY_HPP_INCLUDED +#define BOOST_MPL_AUX_ITERATOR_CATEGORY_HPP_INCLUDED + +#include "boost/mpl/aux_/config/internals.hpp" + +#if defined(BOOST_MPL_INTERNALS_USE_ITERATOR_CATEGORY) + +# include "boost/mpl/iterator_category.hpp" +# define BOOST_MPL_AUX_ITERATOR_CATEGORY(iter) iterator_category::type + +#else + +# define BOOST_MPL_AUX_ITERATOR_CATEGORY(iter) iter::category + +#endif + +#endif // BOOST_MPL_AUX_ITERATOR_CATEGORY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/iterator_names.hpp b/include/boost/mpl/aux_/iterator_names.hpp new file mode 100644 index 0000000..0b9143a --- /dev/null +++ b/include/boost/mpl/aux_/iterator_names.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/iterator_names.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED +#define BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED + +#include "boost/config.hpp" + +#if !defined(BOOST_MSVC) || BOOST_MSVC > 1300 +# define BOOST_MPL_AUX_ITERATOR_ADVANCE advance +# define BOOST_MPL_AUX_ITERATOR_DISTANCE distance +#else +# define BOOST_MPL_AUX_ITERATOR_ADVANCE advance_ +# define BOOST_MPL_AUX_ITERATOR_DISTANCE distance_ +#endif + +#endif // BOOST_MPL_AUX_ITERATOR_NAMES_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/lambda_arity_param.hpp b/include/boost/mpl/aux_/lambda_arity_param.hpp new file mode 100644 index 0000000..a692c53 --- /dev/null +++ b/include/boost/mpl/aux_/lambda_arity_param.hpp @@ -0,0 +1,28 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/lambda_arity_param.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED + +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) +# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) +#else +# define BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(param) , param +#endif + +#endif // BOOST_MPL_AUX_LAMBDA_ARITY_PARAM_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/lambda_expr.hpp b/include/boost/mpl/aux_/lambda_expr.hpp new file mode 100644 index 0000000..f9d3af4 --- /dev/null +++ b/include/boost/mpl/aux_/lambda_expr.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/lambda_expr.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_LAMBDA_EXPR_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_EXPR_HPP_INCLUDED + +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if defined(BOOST_MPL_NO_LAMBDA_HEURISTIC) +# define BOOST_MPL_AUX_IS_LAMBDA_EXPR(value) /**/ +#else +# define BOOST_MPL_AUX_IS_LAMBDA_EXPR(value) \ + typedef value is_le; \ + /**/ +#endif + +#endif // BOOST_MPL_AUX_LAMBDA_EXPR_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/lambda_no_ctps.hpp b/include/boost/mpl/aux_/lambda_no_ctps.hpp new file mode 100644 index 0000000..22ef1a3 --- /dev/null +++ b/include/boost/mpl/aux_/lambda_no_ctps.hpp @@ -0,0 +1,134 @@ +//----------------------------------------------------------------------------- +// boost mpl/lambda_no_ctps.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/lambda_fwd.hpp" +# include "boost/mpl/bind.hpp" +# include "boost/mpl/protect.hpp" +# include "boost/mpl/bool_c.hpp" +# include "boost/mpl/aux_/template_arity.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER lambda_no_ctps.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/preprocessor/repeat.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX_LAMBDA_PARAMS(i, param) \ + BOOST_MPL_PP_PARAMS(i, param) \ + /**/ + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/aux_/lambda_no_ctps.hpp")) +#include BOOST_PP_ITERATE() + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda +#if !defined(BOOST_MSVC) || BOOST_MSVC > 1200 + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > +#else + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, bool_c::value > +#endif + ::template result_ +{ +}; + +# undef AUX_LAMBDA_PARAMS + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_AUX_LAMBDA_NO_CTPS_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +# define AUX_LAMBDA_INVOCATION(i, T) \ + , typename lambda< \ + typename f_::BOOST_PP_CAT(arg,BOOST_PP_INC(i)) \ + , false \ + >::type \ + /**/ + +template<> struct lambda_impl +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef BOOST_PP_CAT(bind,i)< + f_ + BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_INVOCATION, T) + > type; + }; +}; + +template<> struct lambda_impl +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< BOOST_PP_CAT(bind,i)< + f_ + BOOST_MPL_PP_REPEAT(i, AUX_LAMBDA_INVOCATION, T) + > > type; + }; +}; + +# undef AUX_LAMBDA_INVOCATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/aux_/lambda_spec.hpp b/include/boost/mpl/aux_/lambda_spec.hpp new file mode 100644 index 0000000..c0f673c --- /dev/null +++ b/include/boost/mpl/aux_/lambda_spec.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/lambda_spec.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED + +#include "boost/mpl/lambda_fwd.hpp" +#include "boost/mpl/aux_/preprocessor/params.hpp" +#include "boost/mpl/aux_/lambda_arity_param.hpp" +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) + +# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) \ +template< \ + BOOST_MPL_PP_PARAMS(i, typename T) \ + > \ +struct lambda< \ + name< BOOST_MPL_PP_PARAMS(i, T) > \ + BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(-1) \ + > \ +{ \ + typedef name< BOOST_MPL_PP_PARAMS(i, T) > type; \ +}; \ +/**/ + +#else + +# define BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(i, name) /**/ + +#endif + +#endif // BOOST_MPL_AUX_LAMBDA_SPEC_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/lambda_support.hpp b/include/boost/mpl/aux_/lambda_support.hpp new file mode 100644 index 0000000..693117e --- /dev/null +++ b/include/boost/mpl/aux_/lambda_support.hpp @@ -0,0 +1,57 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/lambda_support.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED +#define BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED + +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) /**/ + +#else + +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/preprocessor/tuple/to_list.hpp" +# include "boost/preprocessor/list/for_each_i.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC(R,typedef_,i,param) \ + typedef_ param BOOST_PP_CAT(arg,BOOST_PP_INC(i)); \ + /**/ + +# define BOOST_MPL_AUX_LAMBDA_SUPPORT(i,name,params) \ + struct rebind \ + { \ + BOOST_STATIC_CONSTANT(int, arity = i); \ + BOOST_PP_LIST_FOR_EACH_I( \ + BOOST_MPL_AUX_LAMBDA_SUPPORT_ARG_TYPEDEF_FUNC \ + , typedef \ + , BOOST_PP_TUPLE_TO_LIST(i,params) \ + ) \ + \ + template< BOOST_MPL_PP_PARAMS(i,typename U) > struct apply \ + { \ + typedef typename name< BOOST_MPL_PP_PARAMS(i,U) >::type type; \ + }; \ + }; \ + /**/ + +#endif // BOOST_MPL_NO_FULL_LAMBDA_SUPPORT + +#endif // BOOST_MPL_AUX_LAMBDA_SUPPORT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/metafunction.hpp b/include/boost/mpl/aux_/metafunction.hpp new file mode 100644 index 0000000..7c11172 --- /dev/null +++ b/include/boost/mpl/aux_/metafunction.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/metafunction.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_METAFUNCTION_HPP_INCLUDED +#define BOOST_MPL_AUX_METAFUNCTION_HPP_INCLUDED + +#define BOOST_MPL_AUX_METAFUNCTION(arity, name) name +#define BOOST_MPL_AUX_METAFUNCTION_TRAITS_1(name,T1) /**/ +#define BOOST_MPL_AUX_METAFUNCTION_TRAITS_2(name,T1,T2) /**/ + +#endif // BOOST_MPL_AUX_METAFUNCTION_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/msvc_dtw.hpp b/include/boost/mpl/aux_/msvc_dtw.hpp new file mode 100644 index 0000000..34d9a1e --- /dev/null +++ b/include/boost/mpl/aux_/msvc_dtw.hpp @@ -0,0 +1,56 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/msvc_dtw.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#include "boost/mpl/aux_/preprocessor/params.hpp" + +// local macros, #undef-ined at the end of the header +#define AUX_DTW_PARAMS(param) \ + BOOST_MPL_PP_PARAMS(BOOST_MPL_AUX_MSVC_DTW_ARITY, param) \ +/**/ + +#define AUX_DTW_ORIGINAL_NAME \ + BOOST_MPL_AUX_MSVC_DTW_ORIGINAL_NAME \ +/**/ + +// warning: not a well-formed C++ +// workaround for MSVC 6.5's "dependent template typedef bug" + +template< typename F> +struct BOOST_MPL_AUX_MSVC_DTW_NAME +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< AUX_DTW_PARAMS(typename P) > struct AUX_DTW_ORIGINAL_NAME + { + }; + }; + + template< AUX_DTW_PARAMS(typename T) > struct result_ + : f_< aux::msvc_never_true::value > + ::template AUX_DTW_ORIGINAL_NAME< AUX_DTW_PARAMS(T) > + { + }; +}; + +#undef AUX_DTW_ORIGINAL_NAME +#undef AUX_DTW_PARAMS + +#undef BOOST_MPL_AUX_MSVC_DTW_NAME +#undef BOOST_MPL_AUX_MSVC_DTW_ORIGINAL_NAME +#undef BOOST_MPL_AUX_MSVC_DTW_ARITY diff --git a/include/boost/mpl/aux_/msvc_never_true.hpp b/include/boost/mpl/aux_/msvc_never_true.hpp new file mode 100644 index 0000000..56bdfee --- /dev/null +++ b/include/boost/mpl/aux_/msvc_never_true.hpp @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/msvc_never_true.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED +#define BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED + +#include "boost/config.hpp" + +#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 + +namespace boost { +namespace mpl { +namespace aux { + +template< typename T > +struct msvc_never_true +{ + enum { value = false }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MSVC < 1300 + +#endif // BOOST_MPL_AUX_MSVC_NEVER_TRUE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/nested_type_wknd.hpp b/include/boost/mpl/aux_/nested_type_wknd.hpp new file mode 100644 index 0000000..e771124 --- /dev/null +++ b/include/boost/mpl/aux_/nested_type_wknd.hpp @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/nested_type_wknd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED + +#if defined(__GNUC__) || defined(__BORLANDC__) + +namespace boost { namespace mpl { namespace aux { + +template< typename T > +struct nested_type_wknd + : T::type +{ +}; + +}}} // namespace boost::mpl::aux + +# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) ::boost::mpl::aux::nested_type_wknd + +#else + +# define BOOST_MPL_AUX_NESTED_TYPE_WKND(T) T::type + +#endif // __GNUC__ + +#endif // BOOST_MPL_AUX_NESTED_TYPE_WKND_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/next.hpp b/include/boost/mpl/aux_/next.hpp new file mode 100644 index 0000000..a4144cc --- /dev/null +++ b/include/boost/mpl/aux_/next.hpp @@ -0,0 +1,34 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/next.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_NEXT_HPP_INCLUDED +#define BOOST_MPL_AUX_NEXT_HPP_INCLUDED + +#if defined(BOOST_MPL_USE_NEXT_INTERNALLY) + +# if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/next.hpp" +# endif + +# define BOOST_MPL_AUX_NEXT(x) next::type + +#else + +# define BOOST_MPL_AUX_NEXT(x) x::next + +#endif + +#endif // BOOST_MPL_AUX_NEXT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/pop_back_impl.hpp b/include/boost/mpl/aux_/pop_back_impl.hpp new file mode 100644 index 0000000..0161b65 --- /dev/null +++ b/include/boost/mpl/aux_/pop_back_impl.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_back_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED + +#include "boost/mpl/pop_back_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// no default implementation; the definition is needed to make MSVC happy + +template< typename Tag > +struct pop_back_traits +{ + template< typename Sequence > struct algorithm; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,pop_back_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_POP_BACK_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/pop_front_impl.hpp b/include/boost/mpl/aux_/pop_front_impl.hpp new file mode 100644 index 0000000..015dde4 --- /dev/null +++ b/include/boost/mpl/aux_/pop_front_impl.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_front_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED + +#include "boost/mpl/pop_front_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// no default implementation; the definition is needed to make MSVC happy + +template< typename Tag > +struct pop_front_traits +{ + template< typename Sequence > struct algorithm; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,pop_front_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_POP_FRONT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/pred.hpp b/include/boost/mpl/aux_/pred.hpp new file mode 100644 index 0000000..d46da4e --- /dev/null +++ b/include/boost/mpl/aux_/pred.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux/pred.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PRED_HPP_INCLUDED +#define BOOST_MPL_AUX_PRED_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +// wrapper class to help users to deal with "legacy" metafunctions +// (i.e. the ones that do not provide the '::type' interface) +// +// usage example: mpl::pred< boost::is_same > + +template< typename Pred > +struct pred : Pred +{ + typedef pred type; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_PRED_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp new file mode 100644 index 0000000..6695c5e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_backward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp new file mode 100644 index 0000000..9e323f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_forward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/apply.hpp b/include/boost/mpl/aux_/preprocessed/bcc/apply.hpp new file mode 100644 index 0000000..285ff1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/apply.hpp @@ -0,0 +1,532 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply; + +template< typename F > +struct apply0 : F +{ +}; + +template<> +struct apply0< arg<-1> > +{ + template< typename F > struct apply + : F + { + }; +}; + +template< + typename F + > +struct apply< F,void_,void_,void_,void_,void_ > + : apply0 +{ +}; + +namespace aux { +template< + int N, typename F, typename T1 + > +struct apply_impl1; +} + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 1 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 2 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 3 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 4 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 5 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_, void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct apply1 + : aux::apply_impl1< + ::boost::mpl::aux::arity< F,1 >::value + , F + , T1 + >::type +{ +}; + +template<> +struct apply1< arg<-1>,arg<-1> > +{ + template< + typename F, typename T1 + > + struct apply + : F::template apply< + T1 + > + { + }; +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,void_,void_,void_,void_ > + : apply1< F,T1 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2 + > +struct apply_impl2; +} + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 2 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 3 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 4 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 5 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_, void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : aux::apply_impl2< + ::boost::mpl::aux::arity< F,2 >::value + , F + , T1, T2 + >::type +{ +}; + +template<> +struct apply2< arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2 + > + struct apply + : F::template apply< + T1, T2 + > + { + }; +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,void_,void_,void_ > + : apply2< F,T1,T2 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 3 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 4 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 5 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + , void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : aux::apply_impl3< + ::boost::mpl::aux::arity< F,3 >::value + , F + , T1, T2, T3 + >::type +{ +}; + +template<> +struct apply3< arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3 + > + struct apply + : F::template apply< + T1, T2, T3 + > + { + }; +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,void_,void_ > + : apply3< F,T1,T2,T3 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4< + 4 + , F + , T1, T2, T3, T4 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4< + 5 + , F + , T1, T2, T3, T4 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4 + , void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : aux::apply_impl4< + ::boost::mpl::aux::arity< F,4 >::value + , F + , T1, T2, T3, T4 + >::type +{ +}; + +template<> +struct apply4< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + > + struct apply + : F::template apply< + T1, T2, T3, T4 + > + { + }; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,void_ > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply_impl5; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply_impl5< + 5 + , F + , T1, T2, T3, T4, T5 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4, T5 + + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : aux::apply_impl5< + ::boost::mpl::aux::arity< F,5 >::value + , F + , T1, T2, T3, T4, T5 + >::type +{ +}; + +template<> +struct apply5< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct apply + : F::template apply< + T1, T2, T3, T4, T5 + > + { + }; +}; + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/arg.hpp b/include/boost/mpl/aux_/preprocessed/bcc/arg.hpp new file mode 100644 index 0000000..fdd0502 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/arg.hpp @@ -0,0 +1,131 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + static int const value = -1; + + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + static int const value = 1; + typedef arg<2> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + static int const value = 2; + typedef arg<3> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + static int const value = 3; + typedef arg<4> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + static int const value = 4; + typedef arg<5> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + static int const value = 5; + typedef arg<6> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +namespace aux { +template< int N, int A > +struct arity< arg,A > +{ + static int const value = 5; +}; +} + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/at.hpp b/include/boost/mpl/aux_/preprocessed/bcc/at.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp new file mode 100644 index 0000000..e3f03a7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/basic_bind.hpp @@ -0,0 +1,459 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename apply5< arg,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< bind,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind1st,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind2nd,N > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, int N + > +struct arity< + bind0, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, int N + > +struct arity< + bind1< F,T1 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, int N + > +struct arity< + bind2< F,T1,T2 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, int N + > +struct arity< + bind3< F,T1,T2,T3 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4, int N + > +struct arity< + bind4< F,T1,T2,T3,T4 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< + bind5< F,T1,T2,T3,T4,T5 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp b/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp new file mode 100644 index 0000000..7bf4629 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/bind.hpp @@ -0,0 +1,556 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next_arg; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next_arg; + typedef Arg type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename apply5< arg,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< bind,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind1st,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind2nd,N > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, int N + > +struct arity< + bind0, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, int N + > +struct arity< + bind1< F,T1 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, int N + > +struct arity< + bind2< F,T1,T2 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, int N + > +struct arity< + bind3< F,T1,T2,T3 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4, int N + > +struct arity< + bind4< F,T1,T2,T3,T4 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< + bind5< F,T1,T2,T3,T4,T5 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/bcc/fold_backward_impl.hpp new file mode 100644 index 0000000..b80ee15 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef fold_backward_impl< + -1 + , typename First::next + , Last + , typename apply2::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp new file mode 100644 index 0000000..3888a91 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/fold_impl.hpp @@ -0,0 +1,56 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl +{ + typedef fold_impl< + -1 + , typename First::next + , Last + , typename apply2::type + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + typedef state type; +}; + +template< + long N + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< N,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; + typedef state type; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..39b7fa8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef iter_fold_backward_impl< + -1 + , typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp new file mode 100644 index 0000000..39047fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename apply2< StateOp,State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp new file mode 100644 index 0000000..dd20784 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp @@ -0,0 +1,56 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl +{ + typedef iter_fold_impl< + -1 + , typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + typedef state type; +}; + +template< + long N + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< N,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; + typedef state type; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lambda_helper.hpp new file mode 100644 index 0000000..953d826 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + static int const arity = 1; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + static int const arity = 2; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + static int const arity = 3; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + static int const arity = 4; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + static int const arity = 5; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list.hpp new file mode 100644 index 0000000..853ff61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list; + +template< + + > +struct list< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : list0< > +{ + typedef list0< > type; +}; + +template< + typename T0 + > +struct list< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list1 +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list2< T0,T1 > +{ + typedef list2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : list3< T0,T1,T2 > +{ + typedef list3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : list4< T0,T1,T2,T3 > +{ + typedef list4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : list5< T0,T1,T2,T3,T4 > +{ + typedef list5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : list6< T0,T1,T2,T3,T4,T5 > +{ + typedef list6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : list7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : list8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list + : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list10.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list20.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list30.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list40.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list50.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp new file mode 100644 index 0000000..9f0f872 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp @@ -0,0 +1,151 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c; + +template< + typename T + + > +struct list_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list0_c +{ + typedef typename list0_c::type type; +}; + +template< + typename T + , long C0 + > +struct list_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list1_c< T,C0 > +{ + typedef typename list1_c< T,C0 >::type type; +}; + +template< + typename T + , long C0, long C1 + > +struct list_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list2_c< T,C0,C1 > +{ + typedef typename list2_c< T,C0,C1 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct list_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : list3_c< T,C0,C1,C2 > +{ + typedef typename list3_c< T,C0,C1,C2 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct list_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list4_c< T,C0,C1,C2,C3 > +{ + typedef typename list4_c< T,C0,C1,C2,C3 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct list_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list5_c< T,C0,C1,C2,C3,C4 > +{ + typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct list_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,LONG_MAX,LONG_MAX,LONG_MAX > + : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c + : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/bcc/meta_fun.hpp new file mode 100644 index 0000000..050f317 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/meta_fun.hpp @@ -0,0 +1,3 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/bcc/placeholder.hpp new file mode 100644 index 0000000..def7d1e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/placeholder.hpp @@ -0,0 +1,59 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// namespace { +// using boost::mpl::_; +// } + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector.hpp new file mode 100644 index 0000000..35aaadf --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector; + +template< + + > +struct vector< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : vector0< > +{ + typedef vector0< > type; +}; + +template< + typename T0 + > +struct vector< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector1 +{ + typedef vector1 type; +}; + +template< + typename T0, typename T1 + > +struct vector< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector2< T0,T1 > +{ + typedef vector2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : vector3< T0,T1,T2 > +{ + typedef vector3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : vector4< T0,T1,T2,T3 > +{ + typedef vector4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : vector5< T0,T1,T2,T3,T4 > +{ + typedef vector5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : vector6< T0,T1,T2,T3,T4,T5 > +{ + typedef vector6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : vector7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef vector7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef vector8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector + : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector10.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector10.hpp new file mode 100644 index 0000000..5ee41f2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector10.hpp @@ -0,0 +1,553 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< typename V > +struct vector_item< V,0 > +{ + typedef typename V::item0 type; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +template< typename V > +struct vector_item< V,1 > +{ + typedef typename V::item1 type; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +template< typename V > +struct vector_item< V,2 > +{ + typedef typename V::item2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +template< typename V > +struct vector_item< V,3 > +{ + typedef typename V::item3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +template< typename V > +struct vector_item< V,4 > +{ + typedef typename V::item4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +template< typename V > +struct vector_item< V,5 > +{ + typedef typename V::item5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +template< typename V > +struct vector_item< V,6 > +{ + typedef typename V::item6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +template< typename V > +struct vector_item< V,7 > +{ + typedef typename V::item7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +template< typename V > +struct vector_item< V,8 > +{ + typedef typename V::item8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +template< typename V > +struct vector_item< V,9 > +{ + typedef typename V::item9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +template< typename V > +struct vector_item< V,10 > +{ + typedef typename V::item10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector20.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector20.hpp new file mode 100644 index 0000000..17a6e78 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector20.hpp @@ -0,0 +1,769 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +template< typename V > +struct vector_item< V,11 > +{ + typedef typename V::item11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +template< typename V > +struct vector_item< V,12 > +{ + typedef typename V::item12 type; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +template< typename V > +struct vector_item< V,13 > +{ + typedef typename V::item13 type; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +template< typename V > +struct vector_item< V,14 > +{ + typedef typename V::item14 type; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +template< typename V > +struct vector_item< V,15 > +{ + typedef typename V::item15 type; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +template< typename V > +struct vector_item< V,16 > +{ + typedef typename V::item16 type; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +template< typename V > +struct vector_item< V,17 > +{ + typedef typename V::item17 type; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +template< typename V > +struct vector_item< V,18 > +{ + typedef typename V::item18 type; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +template< typename V > +struct vector_item< V,19 > +{ + typedef typename V::item19 type; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +template< typename V > +struct vector_item< V,20 > +{ + typedef typename V::item20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector30.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector30.hpp new file mode 100644 index 0000000..5bc85c7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector30.hpp @@ -0,0 +1,989 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +template< typename V > +struct vector_item< V,21 > +{ + typedef typename V::item21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +template< typename V > +struct vector_item< V,22 > +{ + typedef typename V::item22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +template< typename V > +struct vector_item< V,23 > +{ + typedef typename V::item23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +template< typename V > +struct vector_item< V,24 > +{ + typedef typename V::item24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +template< typename V > +struct vector_item< V,25 > +{ + typedef typename V::item25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +template< typename V > +struct vector_item< V,26 > +{ + typedef typename V::item26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +template< typename V > +struct vector_item< V,27 > +{ + typedef typename V::item27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +template< typename V > +struct vector_item< V,28 > +{ + typedef typename V::item28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +template< typename V > +struct vector_item< V,29 > +{ + typedef typename V::item29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +template< typename V > +struct vector_item< V,30 > +{ + typedef typename V::item30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector40.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector40.hpp new file mode 100644 index 0000000..0342b82 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector40.hpp @@ -0,0 +1,1209 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +template< typename V > +struct vector_item< V,31 > +{ + typedef typename V::item31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +template< typename V > +struct vector_item< V,32 > +{ + typedef typename V::item32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +template< typename V > +struct vector_item< V,33 > +{ + typedef typename V::item33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +template< typename V > +struct vector_item< V,34 > +{ + typedef typename V::item34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +template< typename V > +struct vector_item< V,35 > +{ + typedef typename V::item35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +template< typename V > +struct vector_item< V,36 > +{ + typedef typename V::item36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +template< typename V > +struct vector_item< V,37 > +{ + typedef typename V::item37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +template< typename V > +struct vector_item< V,38 > +{ + typedef typename V::item38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +template< typename V > +struct vector_item< V,39 > +{ + typedef typename V::item39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +template< typename V > +struct vector_item< V,40 > +{ + typedef typename V::item40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector50.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector50.hpp new file mode 100644 index 0000000..ed4e92c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector50.hpp @@ -0,0 +1,1429 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +template< typename V > +struct vector_item< V,41 > +{ + typedef typename V::item41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +template< typename V > +struct vector_item< V,42 > +{ + typedef typename V::item42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +template< typename V > +struct vector_item< V,43 > +{ + typedef typename V::item43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +template< typename V > +struct vector_item< V,44 > +{ + typedef typename V::item44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +template< typename V > +struct vector_item< V,45 > +{ + typedef typename V::item45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +template< typename V > +struct vector_item< V,46 > +{ + typedef typename V::item46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +template< typename V > +struct vector_item< V,47 > +{ + typedef typename V::item47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +template< typename V > +struct vector_item< V,48 > +{ + typedef typename V::item48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +template< typename V > +struct vector_item< V,49 > +{ + typedef typename V::item49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +template< typename V > +struct vector_item< V,50 > +{ + typedef typename V::item50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp new file mode 100644 index 0000000..ff6be1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/bcc/vector_c.hpp @@ -0,0 +1,153 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c; + +template< + typename T + + > +struct vector_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector0_c +{ + typedef vector0_c type; +}; + +template< + typename T + , long C0 + > +struct vector_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector1_c< T,C0 > +{ + typedef vector1_c< T,C0 > type; +}; + +template< + typename T + , long C0, long C1 + > +struct vector_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector2_c< T,C0,C1 > +{ + typedef vector2_c< T,C0,C1 > type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct vector_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : vector3_c< T,C0,C1,C2 > +{ + typedef vector3_c< T,C0,C1,C2 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct vector_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector4_c< T,C0,C1,C2,C3 > +{ + typedef vector4_c< T,C0,C1,C2,C3 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct vector_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector5_c< T,C0,C1,C2,C3,C4 > +{ + typedef vector5_c< T,C0,C1,C2,C3,C4 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef vector6_c< T,C0,C1,C2,C3,C4,C5 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c + : vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp new file mode 100644 index 0000000..76bd30b --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename advance_backward<4>::template apply::type chunk_result_; + typedef typename advance_backward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp new file mode 100644 index 0000000..61387a5 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename advance_forward<4>::template apply::type chunk_result_; + typedef typename advance_forward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp b/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp new file mode 100644 index 0000000..9dc3d5c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/apply.hpp @@ -0,0 +1,121 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply; + +template< typename F > +struct apply0 : F +{ +}; + +template< + typename F + > +struct apply< F,void_,void_,void_,void_,void_ > + : apply0 +{ +}; + +template< + typename F, typename T1 + > +struct apply1 + : F::template apply< + T1 + > +{ +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,void_,void_,void_,void_ > + : apply1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : F::template apply< + T1, T2 + > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,void_,void_,void_ > + : apply2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : F::template apply< + T1, T2, T3 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,void_,void_ > + : apply3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : F::template apply< + T1, T2, T3, T4 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,void_ > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : F::template apply< + T1, T2, T3, T4, T5 + > +{ +}; + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp b/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp new file mode 100644 index 0000000..60e2aa3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/arg.hpp @@ -0,0 +1,116 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + static int const value = -1; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + static int const value = 1; + typedef arg<2> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + static int const value = 2; + typedef arg<3> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + static int const value = 3; + typedef arg<4> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + static int const value = 4; + typedef arg<5> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + static int const value = 5; + typedef arg<6> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/at.hpp b/include/boost/mpl/aux_/preprocessed/gcc/at.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp new file mode 100644 index 0000000..17b1d14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/basic_bind.hpp @@ -0,0 +1,377 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename arg::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp b/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp new file mode 100644 index 0000000..308b982 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/bind.hpp @@ -0,0 +1,474 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next_arg; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next_arg; + typedef Arg type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename arg::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/gcc/fold_backward_impl.hpp new file mode 100644 index 0000000..808774f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/fold_backward_impl.hpp @@ -0,0 +1,223 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef fold_backward_impl< + -1 + , typename First::next + , Last + + ,typename ForwardOp::template apply::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp new file mode 100644 index 0000000..d1214ec --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/fold_impl.hpp @@ -0,0 +1,177 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl +{ + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,First,Last,State,ForwardOp > + : fold_impl< + -1 + , typename First::next + , Last + + ,typename ForwardOp::template apply::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp new file mode 100644 index 0000000..bfa5bce --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp @@ -0,0 +1,748 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + , long Arity = aux::template_arity::value + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + , long Arity = aux::template_arity::value + > +struct lambda + : lambda_impl< T,false,Arity > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect, long Arity > +struct lambda_impl< arg,Protect,Arity > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect, long Arity + > +struct lambda_impl< + bind0 + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F,-1 > + : lambda_impl< F,true,-1 > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect,-1 > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F,1 > + : lambda_impl< F,true,1 > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect,1 > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect, long Arity + > +struct lambda_impl< + bind1< F,T1 > + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F,-1 > + : lambda_impl< F,true,-1 > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect,-1 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F,2 > + : lambda_impl< F,true,2 > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect,2 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect, long Arity + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F,-1 > + : lambda_impl< F,true,-1 > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect,-1 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F,3 > + : lambda_impl< F,true,3 > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect,3 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect, long Arity + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F,-1 > + : lambda_impl< F,true,-1 > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect,-1 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F,4 > + : lambda_impl< F,true,4 > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect,4 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect, long Arity + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F,-1 > + : lambda_impl< F,true,-1 > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect,-1 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F,5 > + : lambda_impl< F,true,5 > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect,5 > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect, long Arity + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect, Arity + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect,-1 > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect,-1 > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect,-1 > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect,-1 > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..816de20 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef iter_fold_backward_impl< + -1 + , typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp new file mode 100644 index 0000000..a807f65 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename StateOp::template apply< State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp new file mode 100644 index 0000000..e8dc4ec --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp @@ -0,0 +1,176 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl +{ + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,First,Last,State,ForwardOp > + : iter_fold_impl< + -1 + , typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lambda_helper.hpp new file mode 100644 index 0000000..953d826 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + static int const arity = 1; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + static int const arity = 2; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + static int const arity = 3; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + static int const arity = 4; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + static int const arity = 5; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list.hpp new file mode 100644 index 0000000..853ff61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list; + +template< + + > +struct list< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : list0< > +{ + typedef list0< > type; +}; + +template< + typename T0 + > +struct list< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list1 +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list2< T0,T1 > +{ + typedef list2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : list3< T0,T1,T2 > +{ + typedef list3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : list4< T0,T1,T2,T3 > +{ + typedef list4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : list5< T0,T1,T2,T3,T4 > +{ + typedef list5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : list6< T0,T1,T2,T3,T4,T5 > +{ + typedef list6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : list7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : list8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list + : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list10.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list20.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list30.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list40.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list50.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp new file mode 100644 index 0000000..9f0f872 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp @@ -0,0 +1,151 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c; + +template< + typename T + + > +struct list_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list0_c +{ + typedef typename list0_c::type type; +}; + +template< + typename T + , long C0 + > +struct list_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list1_c< T,C0 > +{ + typedef typename list1_c< T,C0 >::type type; +}; + +template< + typename T + , long C0, long C1 + > +struct list_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list2_c< T,C0,C1 > +{ + typedef typename list2_c< T,C0,C1 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct list_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : list3_c< T,C0,C1,C2 > +{ + typedef typename list3_c< T,C0,C1,C2 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct list_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list4_c< T,C0,C1,C2,C3 > +{ + typedef typename list4_c< T,C0,C1,C2,C3 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct list_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list5_c< T,C0,C1,C2,C3,C4 > +{ + typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct list_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,LONG_MAX,LONG_MAX,LONG_MAX > + : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c + : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/gcc/meta_fun.hpp new file mode 100644 index 0000000..befe244 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/meta_fun.hpp @@ -0,0 +1,75 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + > +struct meta_fun1 +{ + template< typename U1 > struct apply + : F + { + }; +}; + +template< + template< typename P1, typename P2 > class F + > +struct meta_fun2 +{ + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + > +struct meta_fun3 +{ + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + > +struct meta_fun4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + > +struct meta_fun5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/gcc/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp new file mode 100644 index 0000000..35aaadf --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector; + +template< + + > +struct vector< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : vector0< > +{ + typedef vector0< > type; +}; + +template< + typename T0 + > +struct vector< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector1 +{ + typedef vector1 type; +}; + +template< + typename T0, typename T1 + > +struct vector< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector2< T0,T1 > +{ + typedef vector2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : vector3< T0,T1,T2 > +{ + typedef vector3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : vector4< T0,T1,T2,T3 > +{ + typedef vector4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : vector5< T0,T1,T2,T3,T4 > +{ + typedef vector5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : vector6< T0,T1,T2,T3,T4,T5 > +{ + typedef vector6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : vector7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef vector7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef vector8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector + : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector10.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector10.hpp new file mode 100644 index 0000000..5ee41f2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector10.hpp @@ -0,0 +1,553 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< typename V > +struct vector_item< V,0 > +{ + typedef typename V::item0 type; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +template< typename V > +struct vector_item< V,1 > +{ + typedef typename V::item1 type; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +template< typename V > +struct vector_item< V,2 > +{ + typedef typename V::item2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +template< typename V > +struct vector_item< V,3 > +{ + typedef typename V::item3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +template< typename V > +struct vector_item< V,4 > +{ + typedef typename V::item4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +template< typename V > +struct vector_item< V,5 > +{ + typedef typename V::item5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +template< typename V > +struct vector_item< V,6 > +{ + typedef typename V::item6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +template< typename V > +struct vector_item< V,7 > +{ + typedef typename V::item7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +template< typename V > +struct vector_item< V,8 > +{ + typedef typename V::item8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +template< typename V > +struct vector_item< V,9 > +{ + typedef typename V::item9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +template< typename V > +struct vector_item< V,10 > +{ + typedef typename V::item10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector20.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector20.hpp new file mode 100644 index 0000000..17a6e78 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector20.hpp @@ -0,0 +1,769 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +template< typename V > +struct vector_item< V,11 > +{ + typedef typename V::item11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +template< typename V > +struct vector_item< V,12 > +{ + typedef typename V::item12 type; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +template< typename V > +struct vector_item< V,13 > +{ + typedef typename V::item13 type; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +template< typename V > +struct vector_item< V,14 > +{ + typedef typename V::item14 type; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +template< typename V > +struct vector_item< V,15 > +{ + typedef typename V::item15 type; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +template< typename V > +struct vector_item< V,16 > +{ + typedef typename V::item16 type; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +template< typename V > +struct vector_item< V,17 > +{ + typedef typename V::item17 type; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +template< typename V > +struct vector_item< V,18 > +{ + typedef typename V::item18 type; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +template< typename V > +struct vector_item< V,19 > +{ + typedef typename V::item19 type; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +template< typename V > +struct vector_item< V,20 > +{ + typedef typename V::item20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector30.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector30.hpp new file mode 100644 index 0000000..5bc85c7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector30.hpp @@ -0,0 +1,989 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +template< typename V > +struct vector_item< V,21 > +{ + typedef typename V::item21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +template< typename V > +struct vector_item< V,22 > +{ + typedef typename V::item22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +template< typename V > +struct vector_item< V,23 > +{ + typedef typename V::item23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +template< typename V > +struct vector_item< V,24 > +{ + typedef typename V::item24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +template< typename V > +struct vector_item< V,25 > +{ + typedef typename V::item25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +template< typename V > +struct vector_item< V,26 > +{ + typedef typename V::item26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +template< typename V > +struct vector_item< V,27 > +{ + typedef typename V::item27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +template< typename V > +struct vector_item< V,28 > +{ + typedef typename V::item28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +template< typename V > +struct vector_item< V,29 > +{ + typedef typename V::item29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +template< typename V > +struct vector_item< V,30 > +{ + typedef typename V::item30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector40.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector40.hpp new file mode 100644 index 0000000..0342b82 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector40.hpp @@ -0,0 +1,1209 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +template< typename V > +struct vector_item< V,31 > +{ + typedef typename V::item31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +template< typename V > +struct vector_item< V,32 > +{ + typedef typename V::item32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +template< typename V > +struct vector_item< V,33 > +{ + typedef typename V::item33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +template< typename V > +struct vector_item< V,34 > +{ + typedef typename V::item34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +template< typename V > +struct vector_item< V,35 > +{ + typedef typename V::item35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +template< typename V > +struct vector_item< V,36 > +{ + typedef typename V::item36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +template< typename V > +struct vector_item< V,37 > +{ + typedef typename V::item37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +template< typename V > +struct vector_item< V,38 > +{ + typedef typename V::item38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +template< typename V > +struct vector_item< V,39 > +{ + typedef typename V::item39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +template< typename V > +struct vector_item< V,40 > +{ + typedef typename V::item40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector50.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector50.hpp new file mode 100644 index 0000000..ed4e92c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector50.hpp @@ -0,0 +1,1429 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +template< typename V > +struct vector_item< V,41 > +{ + typedef typename V::item41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +template< typename V > +struct vector_item< V,42 > +{ + typedef typename V::item42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +template< typename V > +struct vector_item< V,43 > +{ + typedef typename V::item43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +template< typename V > +struct vector_item< V,44 > +{ + typedef typename V::item44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +template< typename V > +struct vector_item< V,45 > +{ + typedef typename V::item45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +template< typename V > +struct vector_item< V,46 > +{ + typedef typename V::item46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +template< typename V > +struct vector_item< V,47 > +{ + typedef typename V::item47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +template< typename V > +struct vector_item< V,48 > +{ + typedef typename V::item48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +template< typename V > +struct vector_item< V,49 > +{ + typedef typename V::item49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +template< typename V > +struct vector_item< V,50 > +{ + typedef typename V::item50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp new file mode 100644 index 0000000..ff6be1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/gcc/vector_c.hpp @@ -0,0 +1,153 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c; + +template< + typename T + + > +struct vector_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector0_c +{ + typedef vector0_c type; +}; + +template< + typename T + , long C0 + > +struct vector_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector1_c< T,C0 > +{ + typedef vector1_c< T,C0 > type; +}; + +template< + typename T + , long C0, long C1 + > +struct vector_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector2_c< T,C0,C1 > +{ + typedef vector2_c< T,C0,C1 > type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct vector_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : vector3_c< T,C0,C1,C2 > +{ + typedef vector3_c< T,C0,C1,C2 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct vector_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector4_c< T,C0,C1,C2,C3 > +{ + typedef vector4_c< T,C0,C1,C2,C3 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct vector_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector5_c< T,C0,C1,C2,C3,C4 > +{ + typedef vector5_c< T,C0,C1,C2,C3,C4 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef vector6_c< T,C0,C1,C2,C3,C4,C5 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c + : vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp new file mode 100644 index 0000000..d52f9c2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/advance_backward.hpp @@ -0,0 +1,93 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_backward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp new file mode 100644 index 0000000..2194d41 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/advance_forward.hpp @@ -0,0 +1,93 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; + + template<> struct apply { typedef int type; }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_forward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp new file mode 100644 index 0000000..5392b3d --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/apply.hpp @@ -0,0 +1,311 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< typename F > +struct apply0 : F +{ +}; + +template<> +struct apply0< arg<-1> > +{ + template< typename F > struct apply + : F + { + }; +}; + +// workaround for "early template instantiation" bug +template<> +struct apply0 +{ + typedef apply0 type; +}; + +namespace aux { + +template< typename F> +struct msvc_apply1 +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< typename P1 > struct apply + { + }; + }; + + template< typename T1 > struct result_ + : f_< aux::msvc_never_true::value > + ::template apply + { + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct apply1 + : aux::msvc_apply1::template result_< + T1 + > +{ +}; + +// workaround for "early template instantiation" bug +template<> +struct apply1< int,int > +{ + typedef apply1 type; +}; + +template<> +struct apply1< arg<-1>,arg<-1> > +{ + template< + typename F, typename T1 + > + struct apply + : aux::msvc_apply1::template result_< + T1 + > + { + }; +}; + +namespace aux { + +template< typename F> +struct msvc_apply2 +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< typename P1, typename P2 > struct apply + { + }; + }; + + template< typename T1, typename T2 > struct result_ + : f_< aux::msvc_never_true::value > + ::template apply< T1,T2 > + { + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : aux::msvc_apply2::template result_< + T1, T2 + > +{ +}; + +// workaround for "early template instantiation" bug +template<> +struct apply2< int,int,int > +{ + typedef apply2 type; +}; + +template<> +struct apply2< arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2 + > + struct apply + : aux::msvc_apply2::template result_< + T1, T2 + > + { + }; +}; + +namespace aux { + +template< typename F> +struct msvc_apply3 +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< typename P1, typename P2, typename P3 > struct apply + { + }; + }; + + template< typename T1, typename T2, typename T3 > struct result_ + : f_< aux::msvc_never_true::value > + ::template apply< T1,T2,T3 > + { + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : aux::msvc_apply3::template result_< + T1, T2, T3 + > +{ +}; + +// workaround for "early template instantiation" bug +template<> +struct apply3< int,int,int,int > +{ + typedef apply3 type; +}; + +template<> +struct apply3< arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3 + > + struct apply + : aux::msvc_apply3::template result_< + T1, T2, T3 + > + { + }; +}; + +namespace aux { + +template< typename F> +struct msvc_apply4 +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< + typename P1, typename P2, typename P3, typename P4 + > + struct apply + { + }; + }; + + template< + typename T1, typename T2, typename T3, typename T4 + > + struct result_ + : f_< aux::msvc_never_true::value > + ::template apply< T1,T2,T3,T4 > + { + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : aux::msvc_apply4::template result_< + T1, T2, T3, T4 + > +{ +}; + +// workaround for "early template instantiation" bug +template<> +struct apply4< int,int,int,int,int > +{ + typedef apply4 type; +}; + +template<> +struct apply4< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + > + struct apply + : aux::msvc_apply4::template result_< + T1, T2, T3, T4 + > + { + }; +}; + +namespace aux { + +template< typename F> +struct msvc_apply5 +{ + template< bool > struct f_ : F {}; + template<> struct f_ + { + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + struct apply + { + }; + }; + + template< + typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + : f_< aux::msvc_never_true::value > + ::template apply< T1,T2,T3,T4,T5 > + { + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : aux::msvc_apply5::template result_< + T1, T2, T3, T4, T5 + > +{ +}; + +// workaround for "early template instantiation" bug +template<> +struct apply5< int,int,int,int,int,int > +{ + typedef apply5 type; +}; + +template<> +struct apply5< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct apply + : aux::msvc_apply5::template result_< + T1, T2, T3, T4, T5 + > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp new file mode 100644 index 0000000..60c23fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/arg.hpp @@ -0,0 +1,123 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + enum { value = -1 }; + + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + enum { value = 1 }; + typedef arg<2> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + enum { value = 2 }; + typedef arg<3> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + enum { value = 3 }; + typedef arg<4> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + enum { value = 4 }; + typedef arg<5> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + enum { value = 5 }; + typedef arg<6> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/at.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/at.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp new file mode 100644 index 0000000..d425b24 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/basic_bind.hpp @@ -0,0 +1,447 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename apply5< T,U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + enum { value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + }; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + enum { value = true }; +}; + +template<> +struct is_bind_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + enum { value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + }; +}; + +} + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp new file mode 100644 index 0000000..f0c388f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/bind.hpp @@ -0,0 +1,557 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename apply5< T,U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +template< typename T > +struct replace_unnamed_arg_impl +{ + template< typename Arg > struct result_ + { + typedef Arg next_arg; + typedef T type; + }; +}; + +template<> +struct replace_unnamed_arg_impl< arg<-1> > +{ + template< typename Arg > struct result_ + { + typedef typename Arg::next next_arg; + typedef Arg type; + }; +}; + +template< typename T, typename Arg > +struct replace_unnamed_arg + : replace_unnamed_arg_impl::template result_ +{ +}; + +} // namespace aux + +#if 0 +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; +#endif + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +#if 0 +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); +#endif + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + enum { value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + }; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + enum { value = true }; +}; + +template<> +struct is_bind_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + enum { value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + }; +}; + +} + +#if 0 +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; +#endif + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/fold_backward_impl.hpp new file mode 100644 index 0000000..8e81e46 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/fold_backward_impl.hpp @@ -0,0 +1,327 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< long > +struct fold_backward_chunk; + +template<> +struct fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< long N > +struct fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step; + +template< + typename Last + , typename State + > +struct fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_backward_null_step< Last,State > + , fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step +{ + typedef fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + , typename apply2::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl + : fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp new file mode 100644 index 0000000..9046749 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/fold_impl.hpp @@ -0,0 +1,282 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< long > +struct fold_chunk; + +template<> +struct fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + typedef typename apply2::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + typedef typename apply2::type state3; + typedef typename iter2::next iter3; + typedef typename apply2::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< long N > +struct fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step; + +template< + typename Last + , typename State + > +struct fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_null_step< Last,State > + , fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step +{ + typedef fold_chunk< -1 >::template result_< + typename First::next + , Last + , typename apply2::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl + : fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..df2fc79 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_backward_impl.hpp @@ -0,0 +1,327 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< long > +struct iter_fold_backward_chunk; + +template<> +struct iter_fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< long N > +struct iter_fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step; + +template< + typename Last + , typename State + > +struct iter_fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_backward_null_step< Last,State > + , iter_fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step +{ + typedef iter_fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl + : iter_fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp new file mode 100644 index 0000000..39047fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename apply2< StateOp,State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp new file mode 100644 index 0000000..f4ae862 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp @@ -0,0 +1,282 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< long > +struct iter_fold_chunk; + +template<> +struct iter_fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template<> +struct iter_fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< long N > +struct iter_fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step; + +template< + typename Last + , typename State + > +struct iter_fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_null_step< Last,State > + , iter_fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; + + template<> struct result_ + { + typedef int state; + typedef int iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step +{ + typedef iter_fold_chunk< -1 >::template result_< + typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl + : iter_fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lambda_helper.hpp new file mode 100644 index 0000000..7840f61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + enum { arity = 1 }; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + enum { arity = 2 }; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + enum { arity = 3 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + enum { arity = 4 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + enum { arity = 5 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp new file mode 100644 index 0000000..16c81b5 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, bool_c::value > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list.hpp new file mode 100644 index 0000000..9b97a1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_impl_chooser; +} + +namespace aux { + +template<> +struct list_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_list_arg +{ + enum { value = true }; +}; + +template<> +struct is_list_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct list_count_args +{ + enum { value = + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list_impl +{ + typedef aux::list_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::list_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list + : aux::list_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::list_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list10.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list20.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list30.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list40.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list50.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp new file mode 100644 index 0000000..9e13ff9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_c_impl_chooser; +} + +namespace aux { + +template<> +struct list_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list0_c< + T + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list1_c< + T, C0 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list2_c< + T, C0, C1 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list3_c< + T, C0, C1, C2 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list4_c< + T, C0, C1, C2, C3 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list5_c< + T, C0, C1, C2, C3, C4 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list6_c< + T, C0, C1, C2, C3, C4, C5 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list7_c< + T, C0, C1, C2, C3, C4, C5, C6 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_list_c_arg +{ + enum { value = true }; +}; + +template<> +struct is_list_c_arg +{ + enum { value = false }; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct list_c_count_args +{ + enum { value = + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + }; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c_impl +{ + typedef aux::list_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::list_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c + : aux::list_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::list_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/meta_fun.hpp new file mode 100644 index 0000000..050f317 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/meta_fun.hpp @@ -0,0 +1,3 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp new file mode 100644 index 0000000..716c016 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_impl_chooser; +} + +namespace aux { + +template<> +struct vector_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_vector_arg +{ + enum { value = true }; +}; + +template<> +struct is_vector_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct vector_count_args +{ + enum { value = + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector_impl +{ + typedef aux::vector_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::vector_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector + : aux::vector_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::vector_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector10.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector10.hpp new file mode 100644 index 0000000..5ae0a39 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector10.hpp @@ -0,0 +1,1131 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template<> struct vector_item_impl<0> +{ + template< typename V > struct result_ + { + typedef typename V::item0 type; + }; +}; +} + +template<> +struct size_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + : integral_c< int,0 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 0> > + : size_traits< aux::vector_tag< 0> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<1> +{ + template< typename V > struct result_ + { + typedef typename V::item1 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : integral_c< int,1 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 1> > + : size_traits< aux::vector_tag< 1> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<2> +{ + template< typename V > struct result_ + { + typedef typename V::item2 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : integral_c< int,2 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 2> > + : size_traits< aux::vector_tag< 2> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<3> +{ + template< typename V > struct result_ + { + typedef typename V::item3 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : integral_c< int,3 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 3> > + : size_traits< aux::vector_tag< 3> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<4> +{ + template< typename V > struct result_ + { + typedef typename V::item4 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : integral_c< int,4 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 4> > + : size_traits< aux::vector_tag< 4> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<5> +{ + template< typename V > struct result_ + { + typedef typename V::item5 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : integral_c< int,5 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 5> > + : size_traits< aux::vector_tag< 5> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<6> +{ + template< typename V > struct result_ + { + typedef typename V::item6 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : integral_c< int,6 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 6> > + : size_traits< aux::vector_tag< 6> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<7> +{ + template< typename V > struct result_ + { + typedef typename V::item7 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : integral_c< int,7 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 7> > + : size_traits< aux::vector_tag< 7> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<8> +{ + template< typename V > struct result_ + { + typedef typename V::item8 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : integral_c< int,8 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 8> > + : size_traits< aux::vector_tag< 8> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<9> +{ + template< typename V > struct result_ + { + typedef typename V::item9 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : integral_c< int,9 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 9> > + : size_traits< aux::vector_tag< 9> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<10> +{ + template< typename V > struct result_ + { + typedef typename V::item10 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : integral_c< int,10 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 10> > + : size_traits< aux::vector_tag< 10> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector20.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector20.hpp new file mode 100644 index 0000000..694d3c4 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector20.hpp @@ -0,0 +1,1319 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<11> +{ + template< typename V > struct result_ + { + typedef typename V::item11 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : integral_c< int,11 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 11> > + : size_traits< aux::vector_tag< 11> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<12> +{ + template< typename V > struct result_ + { + typedef typename V::item12 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : integral_c< int,12 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 12> > + : size_traits< aux::vector_tag< 12> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<13> +{ + template< typename V > struct result_ + { + typedef typename V::item13 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : integral_c< int,13 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 13> > + : size_traits< aux::vector_tag< 13> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<14> +{ + template< typename V > struct result_ + { + typedef typename V::item14 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : integral_c< int,14 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 14> > + : size_traits< aux::vector_tag< 14> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<15> +{ + template< typename V > struct result_ + { + typedef typename V::item15 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : integral_c< int,15 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 15> > + : size_traits< aux::vector_tag< 15> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<16> +{ + template< typename V > struct result_ + { + typedef typename V::item16 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : integral_c< int,16 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 16> > + : size_traits< aux::vector_tag< 16> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<17> +{ + template< typename V > struct result_ + { + typedef typename V::item17 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : integral_c< int,17 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 17> > + : size_traits< aux::vector_tag< 17> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<18> +{ + template< typename V > struct result_ + { + typedef typename V::item18 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : integral_c< int,18 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 18> > + : size_traits< aux::vector_tag< 18> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<19> +{ + template< typename V > struct result_ + { + typedef typename V::item19 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : integral_c< int,19 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 19> > + : size_traits< aux::vector_tag< 19> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<20> +{ + template< typename V > struct result_ + { + typedef typename V::item20 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : integral_c< int,20 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 20> > + : size_traits< aux::vector_tag< 20> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector30.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector30.hpp new file mode 100644 index 0000000..221d12c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector30.hpp @@ -0,0 +1,1539 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<21> +{ + template< typename V > struct result_ + { + typedef typename V::item21 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : integral_c< int,21 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 21> > + : size_traits< aux::vector_tag< 21> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<22> +{ + template< typename V > struct result_ + { + typedef typename V::item22 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : integral_c< int,22 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 22> > + : size_traits< aux::vector_tag< 22> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<23> +{ + template< typename V > struct result_ + { + typedef typename V::item23 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : integral_c< int,23 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 23> > + : size_traits< aux::vector_tag< 23> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<24> +{ + template< typename V > struct result_ + { + typedef typename V::item24 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : integral_c< int,24 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 24> > + : size_traits< aux::vector_tag< 24> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<25> +{ + template< typename V > struct result_ + { + typedef typename V::item25 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : integral_c< int,25 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 25> > + : size_traits< aux::vector_tag< 25> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<26> +{ + template< typename V > struct result_ + { + typedef typename V::item26 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : integral_c< int,26 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 26> > + : size_traits< aux::vector_tag< 26> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<27> +{ + template< typename V > struct result_ + { + typedef typename V::item27 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : integral_c< int,27 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 27> > + : size_traits< aux::vector_tag< 27> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<28> +{ + template< typename V > struct result_ + { + typedef typename V::item28 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : integral_c< int,28 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 28> > + : size_traits< aux::vector_tag< 28> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<29> +{ + template< typename V > struct result_ + { + typedef typename V::item29 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : integral_c< int,29 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 29> > + : size_traits< aux::vector_tag< 29> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<30> +{ + template< typename V > struct result_ + { + typedef typename V::item30 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : integral_c< int,30 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 30> > + : size_traits< aux::vector_tag< 30> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector40.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector40.hpp new file mode 100644 index 0000000..e426c6f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector40.hpp @@ -0,0 +1,1759 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<31> +{ + template< typename V > struct result_ + { + typedef typename V::item31 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : integral_c< int,31 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 31> > + : size_traits< aux::vector_tag< 31> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<32> +{ + template< typename V > struct result_ + { + typedef typename V::item32 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : integral_c< int,32 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 32> > + : size_traits< aux::vector_tag< 32> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<33> +{ + template< typename V > struct result_ + { + typedef typename V::item33 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : integral_c< int,33 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 33> > + : size_traits< aux::vector_tag< 33> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<34> +{ + template< typename V > struct result_ + { + typedef typename V::item34 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : integral_c< int,34 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 34> > + : size_traits< aux::vector_tag< 34> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<35> +{ + template< typename V > struct result_ + { + typedef typename V::item35 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : integral_c< int,35 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 35> > + : size_traits< aux::vector_tag< 35> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<36> +{ + template< typename V > struct result_ + { + typedef typename V::item36 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : integral_c< int,36 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 36> > + : size_traits< aux::vector_tag< 36> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<37> +{ + template< typename V > struct result_ + { + typedef typename V::item37 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : integral_c< int,37 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 37> > + : size_traits< aux::vector_tag< 37> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<38> +{ + template< typename V > struct result_ + { + typedef typename V::item38 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : integral_c< int,38 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 38> > + : size_traits< aux::vector_tag< 38> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<39> +{ + template< typename V > struct result_ + { + typedef typename V::item39 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : integral_c< int,39 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 39> > + : size_traits< aux::vector_tag< 39> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<40> +{ + template< typename V > struct result_ + { + typedef typename V::item40 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : integral_c< int,40 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 40> > + : size_traits< aux::vector_tag< 40> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector50.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector50.hpp new file mode 100644 index 0000000..56165c9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector50.hpp @@ -0,0 +1,1979 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<41> +{ + template< typename V > struct result_ + { + typedef typename V::item41 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : integral_c< int,41 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 41> > + : size_traits< aux::vector_tag< 41> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<42> +{ + template< typename V > struct result_ + { + typedef typename V::item42 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : integral_c< int,42 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 42> > + : size_traits< aux::vector_tag< 42> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<43> +{ + template< typename V > struct result_ + { + typedef typename V::item43 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : integral_c< int,43 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 43> > + : size_traits< aux::vector_tag< 43> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<44> +{ + template< typename V > struct result_ + { + typedef typename V::item44 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : integral_c< int,44 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 44> > + : size_traits< aux::vector_tag< 44> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<45> +{ + template< typename V > struct result_ + { + typedef typename V::item45 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : integral_c< int,45 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 45> > + : size_traits< aux::vector_tag< 45> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<46> +{ + template< typename V > struct result_ + { + typedef typename V::item46 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : integral_c< int,46 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 46> > + : size_traits< aux::vector_tag< 46> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<47> +{ + template< typename V > struct result_ + { + typedef typename V::item47 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : integral_c< int,47 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 47> > + : size_traits< aux::vector_tag< 47> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<48> +{ + template< typename V > struct result_ + { + typedef typename V::item48 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : integral_c< int,48 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 48> > + : size_traits< aux::vector_tag< 48> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<49> +{ + template< typename V > struct result_ + { + typedef typename V::item49 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : integral_c< int,49 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 49> > + : size_traits< aux::vector_tag< 49> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<50> +{ + template< typename V > struct result_ + { + typedef typename V::item50 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : integral_c< int,50 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 50> > + : size_traits< aux::vector_tag< 50> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp new file mode 100644 index 0000000..4272e9f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc60/vector_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_c_impl_chooser; +} + +namespace aux { + +template<> +struct vector_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector0_c< + T + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector1_c< + T, C0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector2_c< + T, C0, C1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector3_c< + T, C0, C1, C2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector4_c< + T, C0, C1, C2, C3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector5_c< + T, C0, C1, C2, C3, C4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector6_c< + T, C0, C1, C2, C3, C4, C5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector7_c< + T, C0, C1, C2, C3, C4, C5, C6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_vector_c_arg +{ + enum { value = true }; +}; + +template<> +struct is_vector_c_arg +{ + enum { value = false }; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct vector_c_count_args +{ + enum { value = + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + }; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c_impl +{ + typedef aux::vector_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::vector_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c + : aux::vector_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::vector_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp new file mode 100644 index 0000000..76bd30b --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename advance_backward<4>::template apply::type chunk_result_; + typedef typename advance_backward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp new file mode 100644 index 0000000..61387a5 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename advance_forward<4>::template apply::type chunk_result_; + typedef typename advance_forward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp new file mode 100644 index 0000000..b8c2b28 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/apply.hpp @@ -0,0 +1,302 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct apply_impl_chooser; +} + +template< typename F > +struct apply0 : F +{ +}; + +template<> +struct apply0< arg<-1> > +{ + template< typename F > struct apply + : F + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply0< + F + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct apply1 + : F::template apply< + T1 + > +{ +}; + +template<> +struct apply1< arg<-1>,arg<-1> > +{ + template< + typename F, typename T1 + > + struct apply + : F::template apply< + T1 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply1< + F, T1 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : F::template apply< + T1, T2 + > +{ +}; + +template<> +struct apply2< arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2 + > + struct apply + : F::template apply< + T1, T2 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply2< + F, T1, T2 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : F::template apply< + T1, T2, T3 + > +{ +}; + +template<> +struct apply3< arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3 + > + struct apply + : F::template apply< + T1, T2, T3 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply3< + F, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : F::template apply< + T1, T2, T3, T4 + > +{ +}; + +template<> +struct apply4< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + > + struct apply + : F::template apply< + T1, T2, T3, T4 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply4< + F, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : F::template apply< + T1, T2, T3, T4, T5 + > +{ +}; + +template<> +struct apply5< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct apply + : F::template apply< + T1, T2, T3, T4, T5 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply5< + F, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_apply_arg +{ + enum { value = true }; +}; + +template<> +struct is_apply_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct apply_count_args +{ + enum { value = + is_apply_arg::value + is_apply_arg::value + + is_apply_arg::value + is_apply_arg::value + + is_apply_arg::value + }; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply + : aux::apply_impl_chooser< + aux::apply_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp new file mode 100644 index 0000000..60c23fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/arg.hpp @@ -0,0 +1,123 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + enum { value = -1 }; + + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + enum { value = 1 }; + typedef arg<2> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + enum { value = 2 }; + typedef arg<3> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + enum { value = 3 }; + typedef arg<4> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + enum { value = 4 }; + typedef arg<5> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + enum { value = 5 }; + typedef arg<6> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp new file mode 100644 index 0000000..d272779 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/basic_bind.hpp @@ -0,0 +1,447 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename T::template apply< U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + enum { value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + }; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + enum { value = true }; +}; + +template<> +struct is_bind_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + enum { value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + }; +}; + +} + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp new file mode 100644 index 0000000..68c0a3a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/bind.hpp @@ -0,0 +1,557 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename T::template apply< U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +template< typename T > +struct replace_unnamed_arg_impl +{ + template< typename Arg > struct result_ + { + typedef Arg next_arg; + typedef T type; + }; +}; + +template<> +struct replace_unnamed_arg_impl< arg<-1> > +{ + template< typename Arg > struct result_ + { + typedef typename Arg::next next_arg; + typedef Arg type; + }; +}; + +template< typename T, typename Arg > +struct replace_unnamed_arg + : replace_unnamed_arg_impl::template result_ +{ +}; + +} // namespace aux + +#if 0 +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; +#endif + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +#if 0 +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); +#endif + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + enum { value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + }; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + enum { value = true }; +}; + +template<> +struct is_bind_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + enum { value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + }; +}; + +} + +#if 0 +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; +#endif + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/fold_backward_impl.hpp new file mode 100644 index 0000000..17e39df --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/fold_backward_impl.hpp @@ -0,0 +1,292 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< long > +struct fold_backward_chunk; + +template<> +struct fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; +}; + +template<> +struct fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; +}; + +template<> +struct fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; +}; + +template<> +struct fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step; + +template< + typename Last + , typename State + > +struct fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_backward_null_step< Last,State > + , fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step +{ + typedef fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + + ,typename ForwardOp::template apply::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl + : fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp new file mode 100644 index 0000000..33c577e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/fold_impl.hpp @@ -0,0 +1,247 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< long > +struct fold_chunk; + +template<> +struct fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; +}; + +template<> +struct fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; +}; + +template<> +struct fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; +}; + +template<> +struct fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step; + +template< + typename Last + , typename State + > +struct fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_null_step< Last,State > + , fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step +{ + typedef fold_chunk< -1 >::template result_< + typename First::next + , Last + + ,typename ForwardOp::template apply::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl + : fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..50392db --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_backward_impl.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< long > +struct iter_fold_backward_chunk; + +template<> +struct iter_fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct iter_fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step; + +template< + typename Last + , typename State + > +struct iter_fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_backward_null_step< Last,State > + , iter_fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step +{ + typedef iter_fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl + : iter_fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp new file mode 100644 index 0000000..39047fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename apply2< StateOp,State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp new file mode 100644 index 0000000..2311c83 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp @@ -0,0 +1,246 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< long > +struct iter_fold_chunk; + +template<> +struct iter_fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct iter_fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; +}; + +template<> +struct iter_fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; +}; + +template<> +struct iter_fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; +}; + +template<> +struct iter_fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct iter_fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step; + +template< + typename Last + , typename State + > +struct iter_fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_null_step< Last,State > + , iter_fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step +{ + typedef iter_fold_chunk< -1 >::template result_< + typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl + : iter_fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lambda_helper.hpp new file mode 100644 index 0000000..7840f61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + enum { arity = 1 }; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + enum { arity = 2 }; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + enum { arity = 3 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + enum { arity = 4 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + enum { arity = 5 }; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list.hpp new file mode 100644 index 0000000..9b97a1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_impl_chooser; +} + +namespace aux { + +template<> +struct list_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_list_arg +{ + enum { value = true }; +}; + +template<> +struct is_list_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct list_count_args +{ + enum { value = + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list_impl +{ + typedef aux::list_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::list_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list + : aux::list_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::list_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list10.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list20.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list30.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list40.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list50.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp new file mode 100644 index 0000000..9e13ff9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_c_impl_chooser; +} + +namespace aux { + +template<> +struct list_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list0_c< + T + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list1_c< + T, C0 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list2_c< + T, C0, C1 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list3_c< + T, C0, C1, C2 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list4_c< + T, C0, C1, C2, C3 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list5_c< + T, C0, C1, C2, C3, C4 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list6_c< + T, C0, C1, C2, C3, C4, C5 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list7_c< + T, C0, C1, C2, C3, C4, C5, C6 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_list_c_arg +{ + enum { value = true }; +}; + +template<> +struct is_list_c_arg +{ + enum { value = false }; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct list_c_count_args +{ + enum { value = + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + }; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c_impl +{ + typedef aux::list_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::list_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c + : aux::list_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::list_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/meta_fun.hpp new file mode 100644 index 0000000..befe244 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/meta_fun.hpp @@ -0,0 +1,75 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + > +struct meta_fun1 +{ + template< typename U1 > struct apply + : F + { + }; +}; + +template< + template< typename P1, typename P2 > class F + > +struct meta_fun2 +{ + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + > +struct meta_fun3 +{ + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + > +struct meta_fun4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + > +struct meta_fun5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp new file mode 100644 index 0000000..716c016 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_impl_chooser; +} + +namespace aux { + +template<> +struct vector_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_vector_arg +{ + enum { value = true }; +}; + +template<> +struct is_vector_arg +{ + enum { value = false }; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct vector_count_args +{ + enum { value = + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector_impl +{ + typedef aux::vector_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::vector_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector + : aux::vector_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::vector_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector10.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector10.hpp new file mode 100644 index 0000000..5ae0a39 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector10.hpp @@ -0,0 +1,1131 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template<> struct vector_item_impl<0> +{ + template< typename V > struct result_ + { + typedef typename V::item0 type; + }; +}; +} + +template<> +struct size_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + : integral_c< int,0 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 0> > + : size_traits< aux::vector_tag< 0> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<1> +{ + template< typename V > struct result_ + { + typedef typename V::item1 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : integral_c< int,1 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 1> > + : size_traits< aux::vector_tag< 1> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<2> +{ + template< typename V > struct result_ + { + typedef typename V::item2 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : integral_c< int,2 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 2> > + : size_traits< aux::vector_tag< 2> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<3> +{ + template< typename V > struct result_ + { + typedef typename V::item3 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : integral_c< int,3 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 3> > + : size_traits< aux::vector_tag< 3> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<4> +{ + template< typename V > struct result_ + { + typedef typename V::item4 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : integral_c< int,4 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 4> > + : size_traits< aux::vector_tag< 4> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<5> +{ + template< typename V > struct result_ + { + typedef typename V::item5 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : integral_c< int,5 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 5> > + : size_traits< aux::vector_tag< 5> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<6> +{ + template< typename V > struct result_ + { + typedef typename V::item6 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : integral_c< int,6 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 6> > + : size_traits< aux::vector_tag< 6> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<7> +{ + template< typename V > struct result_ + { + typedef typename V::item7 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : integral_c< int,7 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 7> > + : size_traits< aux::vector_tag< 7> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<8> +{ + template< typename V > struct result_ + { + typedef typename V::item8 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : integral_c< int,8 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 8> > + : size_traits< aux::vector_tag< 8> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<9> +{ + template< typename V > struct result_ + { + typedef typename V::item9 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : integral_c< int,9 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 9> > + : size_traits< aux::vector_tag< 9> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<10> +{ + template< typename V > struct result_ + { + typedef typename V::item10 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : integral_c< int,10 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 10> > + : size_traits< aux::vector_tag< 10> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector20.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector20.hpp new file mode 100644 index 0000000..694d3c4 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector20.hpp @@ -0,0 +1,1319 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<11> +{ + template< typename V > struct result_ + { + typedef typename V::item11 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : integral_c< int,11 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 11> > + : size_traits< aux::vector_tag< 11> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<12> +{ + template< typename V > struct result_ + { + typedef typename V::item12 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : integral_c< int,12 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 12> > + : size_traits< aux::vector_tag< 12> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<13> +{ + template< typename V > struct result_ + { + typedef typename V::item13 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : integral_c< int,13 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 13> > + : size_traits< aux::vector_tag< 13> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<14> +{ + template< typename V > struct result_ + { + typedef typename V::item14 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : integral_c< int,14 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 14> > + : size_traits< aux::vector_tag< 14> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<15> +{ + template< typename V > struct result_ + { + typedef typename V::item15 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : integral_c< int,15 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 15> > + : size_traits< aux::vector_tag< 15> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<16> +{ + template< typename V > struct result_ + { + typedef typename V::item16 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : integral_c< int,16 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 16> > + : size_traits< aux::vector_tag< 16> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<17> +{ + template< typename V > struct result_ + { + typedef typename V::item17 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : integral_c< int,17 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 17> > + : size_traits< aux::vector_tag< 17> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<18> +{ + template< typename V > struct result_ + { + typedef typename V::item18 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : integral_c< int,18 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 18> > + : size_traits< aux::vector_tag< 18> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<19> +{ + template< typename V > struct result_ + { + typedef typename V::item19 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : integral_c< int,19 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 19> > + : size_traits< aux::vector_tag< 19> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<20> +{ + template< typename V > struct result_ + { + typedef typename V::item20 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : integral_c< int,20 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 20> > + : size_traits< aux::vector_tag< 20> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector30.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector30.hpp new file mode 100644 index 0000000..221d12c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector30.hpp @@ -0,0 +1,1539 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<21> +{ + template< typename V > struct result_ + { + typedef typename V::item21 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : integral_c< int,21 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 21> > + : size_traits< aux::vector_tag< 21> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<22> +{ + template< typename V > struct result_ + { + typedef typename V::item22 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : integral_c< int,22 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 22> > + : size_traits< aux::vector_tag< 22> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<23> +{ + template< typename V > struct result_ + { + typedef typename V::item23 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : integral_c< int,23 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 23> > + : size_traits< aux::vector_tag< 23> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<24> +{ + template< typename V > struct result_ + { + typedef typename V::item24 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : integral_c< int,24 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 24> > + : size_traits< aux::vector_tag< 24> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<25> +{ + template< typename V > struct result_ + { + typedef typename V::item25 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : integral_c< int,25 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 25> > + : size_traits< aux::vector_tag< 25> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<26> +{ + template< typename V > struct result_ + { + typedef typename V::item26 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : integral_c< int,26 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 26> > + : size_traits< aux::vector_tag< 26> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<27> +{ + template< typename V > struct result_ + { + typedef typename V::item27 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : integral_c< int,27 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 27> > + : size_traits< aux::vector_tag< 27> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<28> +{ + template< typename V > struct result_ + { + typedef typename V::item28 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : integral_c< int,28 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 28> > + : size_traits< aux::vector_tag< 28> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<29> +{ + template< typename V > struct result_ + { + typedef typename V::item29 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : integral_c< int,29 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 29> > + : size_traits< aux::vector_tag< 29> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<30> +{ + template< typename V > struct result_ + { + typedef typename V::item30 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : integral_c< int,30 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 30> > + : size_traits< aux::vector_tag< 30> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector40.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector40.hpp new file mode 100644 index 0000000..e426c6f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector40.hpp @@ -0,0 +1,1759 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<31> +{ + template< typename V > struct result_ + { + typedef typename V::item31 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : integral_c< int,31 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 31> > + : size_traits< aux::vector_tag< 31> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<32> +{ + template< typename V > struct result_ + { + typedef typename V::item32 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : integral_c< int,32 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 32> > + : size_traits< aux::vector_tag< 32> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<33> +{ + template< typename V > struct result_ + { + typedef typename V::item33 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : integral_c< int,33 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 33> > + : size_traits< aux::vector_tag< 33> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<34> +{ + template< typename V > struct result_ + { + typedef typename V::item34 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : integral_c< int,34 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 34> > + : size_traits< aux::vector_tag< 34> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<35> +{ + template< typename V > struct result_ + { + typedef typename V::item35 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : integral_c< int,35 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 35> > + : size_traits< aux::vector_tag< 35> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<36> +{ + template< typename V > struct result_ + { + typedef typename V::item36 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : integral_c< int,36 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 36> > + : size_traits< aux::vector_tag< 36> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<37> +{ + template< typename V > struct result_ + { + typedef typename V::item37 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : integral_c< int,37 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 37> > + : size_traits< aux::vector_tag< 37> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<38> +{ + template< typename V > struct result_ + { + typedef typename V::item38 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : integral_c< int,38 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 38> > + : size_traits< aux::vector_tag< 38> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<39> +{ + template< typename V > struct result_ + { + typedef typename V::item39 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : integral_c< int,39 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 39> > + : size_traits< aux::vector_tag< 39> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<40> +{ + template< typename V > struct result_ + { + typedef typename V::item40 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : integral_c< int,40 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 40> > + : size_traits< aux::vector_tag< 40> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector50.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector50.hpp new file mode 100644 index 0000000..56165c9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector50.hpp @@ -0,0 +1,1979 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<41> +{ + template< typename V > struct result_ + { + typedef typename V::item41 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : integral_c< int,41 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 41> > + : size_traits< aux::vector_tag< 41> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<42> +{ + template< typename V > struct result_ + { + typedef typename V::item42 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : integral_c< int,42 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 42> > + : size_traits< aux::vector_tag< 42> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<43> +{ + template< typename V > struct result_ + { + typedef typename V::item43 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : integral_c< int,43 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 43> > + : size_traits< aux::vector_tag< 43> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<44> +{ + template< typename V > struct result_ + { + typedef typename V::item44 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : integral_c< int,44 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 44> > + : size_traits< aux::vector_tag< 44> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<45> +{ + template< typename V > struct result_ + { + typedef typename V::item45 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : integral_c< int,45 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 45> > + : size_traits< aux::vector_tag< 45> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<46> +{ + template< typename V > struct result_ + { + typedef typename V::item46 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : integral_c< int,46 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 46> > + : size_traits< aux::vector_tag< 46> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<47> +{ + template< typename V > struct result_ + { + typedef typename V::item47 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : integral_c< int,47 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 47> > + : size_traits< aux::vector_tag< 47> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<48> +{ + template< typename V > struct result_ + { + typedef typename V::item48 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : integral_c< int,48 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 48> > + : size_traits< aux::vector_tag< 48> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<49> +{ + template< typename V > struct result_ + { + typedef typename V::item49 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : integral_c< int,49 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 49> > + : size_traits< aux::vector_tag< 49> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<50> +{ + template< typename V > struct result_ + { + typedef typename V::item50 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : integral_c< int,50 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 50> > + : size_traits< aux::vector_tag< 50> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp new file mode 100644 index 0000000..4272e9f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/msvc70/vector_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_c_impl_chooser; +} + +namespace aux { + +template<> +struct vector_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector0_c< + T + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector1_c< + T, C0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector2_c< + T, C0, C1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector3_c< + T, C0, C1, C2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector4_c< + T, C0, C1, C2, C3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector5_c< + T, C0, C1, C2, C3, C4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector6_c< + T, C0, C1, C2, C3, C4, C5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector7_c< + T, C0, C1, C2, C3, C4, C5, C6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_vector_c_arg +{ + enum { value = true }; +}; + +template<> +struct is_vector_c_arg +{ + enum { value = false }; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct vector_c_count_args +{ + enum { value = + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + }; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c_impl +{ + typedef aux::vector_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::vector_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c + : aux::vector_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::vector_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp new file mode 100644 index 0000000..6695c5e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_backward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp new file mode 100644 index 0000000..9e323f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename apply1< advance_forward<4>,Iterator >::type chunk_result_; + typedef typename apply1,chunk_result_>::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp new file mode 100644 index 0000000..8f1f6a0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/apply.hpp @@ -0,0 +1,452 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply; + +template< typename F > +struct apply0 : F +{ +}; + +template< + typename F + > +struct apply< F,void_,void_,void_,void_,void_ > + : apply0 +{ +}; + +namespace aux { +template< + int N, typename F, typename T1 + > +struct apply_impl1; +} + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 1 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 2 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 3 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 4 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1 + > +struct apply_impl1< + 5 + , F + , T1 + > +{ + typedef typename F::template apply< + T1 + , void_, void_, void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct apply1 + : aux::apply_impl1< + ::boost::mpl::aux::arity< F,1 >::value + , F + , T1 + >::type +{ +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,void_,void_,void_,void_ > + : apply1< F,T1 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2 + > +struct apply_impl2; +} + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 2 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 3 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 4 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_, void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +struct apply_impl2< + 5 + , F + , T1, T2 + > +{ + typedef typename F::template apply< + T1, T2 + , void_, void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : aux::apply_impl2< + ::boost::mpl::aux::arity< F,2 >::value + , F + , T1, T2 + >::type +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,void_,void_,void_ > + : apply2< F,T1,T2 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 3 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 4 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + , void_ + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply_impl3< + 5 + , F + , T1, T2, T3 + > +{ + typedef typename F::template apply< + T1, T2, T3 + , void_, void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : aux::apply_impl3< + ::boost::mpl::aux::arity< F,3 >::value + , F + , T1, T2, T3 + >::type +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,void_,void_ > + : apply3< F,T1,T2,T3 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4< + 4 + , F + , T1, T2, T3, T4 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4 + + > type; +}; + +} // namespace aux + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply_impl4< + 5 + , F + , T1, T2, T3, T4 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4 + , void_ + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : aux::apply_impl4< + ::boost::mpl::aux::arity< F,4 >::value + , F + , T1, T2, T3, T4 + >::type +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,void_ > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +namespace aux { +template< + int N, typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply_impl5; +} + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply_impl5< + 5 + , F + , T1, T2, T3, T4, T5 + > +{ + typedef typename F::template apply< + T1, T2, T3, T4, T5 + + > type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : aux::apply_impl5< + ::boost::mpl::aux::arity< F,5 >::value + , F + , T1, T2, T3, T4, T5 + >::type +{ +}; + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp new file mode 100644 index 0000000..d3eab5a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/arg.hpp @@ -0,0 +1,124 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + static int const value = -1; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + static int const value = 1; + typedef arg<2> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + static int const value = 2; + typedef arg<3> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + static int const value = 3; + typedef arg<4> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + static int const value = 4; + typedef arg<5> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + static int const value = 5; + typedef arg<6> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +namespace aux { +template< int N, int A > +struct arity< arg,A > +{ + static int const value = 5; +}; +} + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp new file mode 100644 index 0000000..e3f03a7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/basic_bind.hpp @@ -0,0 +1,459 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename apply5< arg,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< bind,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind1st,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind2nd,N > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, int N + > +struct arity< + bind0, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, int N + > +struct arity< + bind1< F,T1 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, int N + > +struct arity< + bind2< F,T1,T2 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, int N + > +struct arity< + bind3< F,T1,T2,T3 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4, int N + > +struct arity< + bind4< F,T1,T2,T3,T4 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< + bind5< F,T1,T2,T3,T4,T5 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp new file mode 100644 index 0000000..7bf4629 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/bind.hpp @@ -0,0 +1,556 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next_arg; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next_arg; + typedef Arg type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename apply5< arg,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< bind,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind1st,N > +{ + static int const value = 5; +}; + +template< typename F, typename T, int N > +struct arity< bind2nd,N > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename apply0::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, int N + > +struct arity< + bind0, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename apply1< f_,t1 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, int N + > +struct arity< + bind1< F,T1 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename apply2< f_,t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, int N + > +struct arity< + bind2< F,T1,T2 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename apply3< f_,t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, int N + > +struct arity< + bind3< F,T1,T2,T3 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename apply4< f_,t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4, int N + > +struct arity< + bind4< F,T1,T2,T3,T4 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename apply5< f_,t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename apply5< f_,U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, int N + > +struct arity< + bind5< F,T1,T2,T3,T4,T5 >, N + > +{ + static int const value = 5; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : apply2< F,U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/fold_backward_impl.hpp new file mode 100644 index 0000000..b80ee15 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2::type bkwd_state3; + typedef typename apply2::type bkwd_state2; + typedef typename apply2::type bkwd_state1; + typedef typename apply2::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef fold_backward_impl< + -1 + , typename First::next + , Last + , typename apply2::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp new file mode 100644 index 0000000..df34c8d --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/fold_impl.hpp @@ -0,0 +1,176 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + typedef typename apply2::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2::type state1; + typedef typename iter0::next iter1; + typedef typename apply2::type state2; + typedef typename iter1::next iter2; + typedef typename apply2::type state3; + typedef typename iter2::next iter3; + typedef typename apply2::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl +{ + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,First,Last,State,ForwardOp > + : fold_impl< + -1 + , typename First::next + , Last + , typename apply2::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..39b7fa8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename apply2< ForwardOp,fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename apply2< BackwardOp,bkwd_state4,iter3 >::type bkwd_state3; + typedef typename apply2< BackwardOp,bkwd_state3,iter2 >::type bkwd_state2; + typedef typename apply2< BackwardOp,bkwd_state2,iter1 >::type bkwd_state1; + typedef typename apply2< BackwardOp,bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef iter_fold_backward_impl< + -1 + , typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename apply2::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp new file mode 100644 index 0000000..39047fd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename apply2< StateOp,State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename apply2< Predicate,State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp new file mode 100644 index 0000000..2a316af --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp @@ -0,0 +1,176 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename apply2< ForwardOp,state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename apply2< ForwardOp,state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename apply2< ForwardOp,state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename apply2< ForwardOp,state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl +{ + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,First,Last,State,ForwardOp > + : iter_fold_impl< + -1 + , typename First::next + , Last + , typename apply2< ForwardOp,State,First >::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lambda_helper.hpp new file mode 100644 index 0000000..953d826 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + static int const arity = 1; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + static int const arity = 2; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + static int const arity = 3; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + static int const arity = 4; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + static int const arity = 5; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list.hpp new file mode 100644 index 0000000..853ff61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list; + +template< + + > +struct list< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : list0< > +{ + typedef list0< > type; +}; + +template< + typename T0 + > +struct list< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list1 +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list2< T0,T1 > +{ + typedef list2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : list3< T0,T1,T2 > +{ + typedef list3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : list4< T0,T1,T2,T3 > +{ + typedef list4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : list5< T0,T1,T2,T3,T4 > +{ + typedef list5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : list6< T0,T1,T2,T3,T4,T5 > +{ + typedef list6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : list7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : list8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list + : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list10.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list20.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list30.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list40.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list50.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp new file mode 100644 index 0000000..9f0f872 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp @@ -0,0 +1,151 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c; + +template< + typename T + + > +struct list_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list0_c +{ + typedef typename list0_c::type type; +}; + +template< + typename T + , long C0 + > +struct list_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list1_c< T,C0 > +{ + typedef typename list1_c< T,C0 >::type type; +}; + +template< + typename T + , long C0, long C1 + > +struct list_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list2_c< T,C0,C1 > +{ + typedef typename list2_c< T,C0,C1 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct list_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : list3_c< T,C0,C1,C2 > +{ + typedef typename list3_c< T,C0,C1,C2 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct list_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list4_c< T,C0,C1,C2,C3 > +{ + typedef typename list4_c< T,C0,C1,C2,C3 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct list_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list5_c< T,C0,C1,C2,C3,C4 > +{ + typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct list_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,LONG_MAX,LONG_MAX,LONG_MAX > + : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c + : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/meta_fun.hpp new file mode 100644 index 0000000..befe244 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/meta_fun.hpp @@ -0,0 +1,75 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + > +struct meta_fun1 +{ + template< typename U1 > struct apply + : F + { + }; +}; + +template< + template< typename P1, typename P2 > class F + > +struct meta_fun2 +{ + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + > +struct meta_fun3 +{ + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + > +struct meta_fun4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + > +struct meta_fun5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp new file mode 100644 index 0000000..35aaadf --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector; + +template< + + > +struct vector< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : vector0< > +{ + typedef vector0< > type; +}; + +template< + typename T0 + > +struct vector< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector1 +{ + typedef vector1 type; +}; + +template< + typename T0, typename T1 + > +struct vector< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector2< T0,T1 > +{ + typedef vector2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : vector3< T0,T1,T2 > +{ + typedef vector3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : vector4< T0,T1,T2,T3 > +{ + typedef vector4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : vector5< T0,T1,T2,T3,T4 > +{ + typedef vector5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : vector6< T0,T1,T2,T3,T4,T5 > +{ + typedef vector6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : vector7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef vector7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef vector8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector + : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector10.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector10.hpp new file mode 100644 index 0000000..5ee41f2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector10.hpp @@ -0,0 +1,553 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< typename V > +struct vector_item< V,0 > +{ + typedef typename V::item0 type; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +template< typename V > +struct vector_item< V,1 > +{ + typedef typename V::item1 type; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +template< typename V > +struct vector_item< V,2 > +{ + typedef typename V::item2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +template< typename V > +struct vector_item< V,3 > +{ + typedef typename V::item3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +template< typename V > +struct vector_item< V,4 > +{ + typedef typename V::item4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +template< typename V > +struct vector_item< V,5 > +{ + typedef typename V::item5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +template< typename V > +struct vector_item< V,6 > +{ + typedef typename V::item6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +template< typename V > +struct vector_item< V,7 > +{ + typedef typename V::item7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +template< typename V > +struct vector_item< V,8 > +{ + typedef typename V::item8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +template< typename V > +struct vector_item< V,9 > +{ + typedef typename V::item9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +template< typename V > +struct vector_item< V,10 > +{ + typedef typename V::item10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector20.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector20.hpp new file mode 100644 index 0000000..17a6e78 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector20.hpp @@ -0,0 +1,769 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +template< typename V > +struct vector_item< V,11 > +{ + typedef typename V::item11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +template< typename V > +struct vector_item< V,12 > +{ + typedef typename V::item12 type; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +template< typename V > +struct vector_item< V,13 > +{ + typedef typename V::item13 type; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +template< typename V > +struct vector_item< V,14 > +{ + typedef typename V::item14 type; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +template< typename V > +struct vector_item< V,15 > +{ + typedef typename V::item15 type; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +template< typename V > +struct vector_item< V,16 > +{ + typedef typename V::item16 type; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +template< typename V > +struct vector_item< V,17 > +{ + typedef typename V::item17 type; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +template< typename V > +struct vector_item< V,18 > +{ + typedef typename V::item18 type; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +template< typename V > +struct vector_item< V,19 > +{ + typedef typename V::item19 type; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +template< typename V > +struct vector_item< V,20 > +{ + typedef typename V::item20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector30.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector30.hpp new file mode 100644 index 0000000..5bc85c7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector30.hpp @@ -0,0 +1,989 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +template< typename V > +struct vector_item< V,21 > +{ + typedef typename V::item21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +template< typename V > +struct vector_item< V,22 > +{ + typedef typename V::item22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +template< typename V > +struct vector_item< V,23 > +{ + typedef typename V::item23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +template< typename V > +struct vector_item< V,24 > +{ + typedef typename V::item24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +template< typename V > +struct vector_item< V,25 > +{ + typedef typename V::item25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +template< typename V > +struct vector_item< V,26 > +{ + typedef typename V::item26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +template< typename V > +struct vector_item< V,27 > +{ + typedef typename V::item27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +template< typename V > +struct vector_item< V,28 > +{ + typedef typename V::item28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +template< typename V > +struct vector_item< V,29 > +{ + typedef typename V::item29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +template< typename V > +struct vector_item< V,30 > +{ + typedef typename V::item30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector40.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector40.hpp new file mode 100644 index 0000000..0342b82 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector40.hpp @@ -0,0 +1,1209 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +template< typename V > +struct vector_item< V,31 > +{ + typedef typename V::item31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +template< typename V > +struct vector_item< V,32 > +{ + typedef typename V::item32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +template< typename V > +struct vector_item< V,33 > +{ + typedef typename V::item33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +template< typename V > +struct vector_item< V,34 > +{ + typedef typename V::item34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +template< typename V > +struct vector_item< V,35 > +{ + typedef typename V::item35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +template< typename V > +struct vector_item< V,36 > +{ + typedef typename V::item36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +template< typename V > +struct vector_item< V,37 > +{ + typedef typename V::item37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +template< typename V > +struct vector_item< V,38 > +{ + typedef typename V::item38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +template< typename V > +struct vector_item< V,39 > +{ + typedef typename V::item39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +template< typename V > +struct vector_item< V,40 > +{ + typedef typename V::item40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector50.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector50.hpp new file mode 100644 index 0000000..ed4e92c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector50.hpp @@ -0,0 +1,1429 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +template< typename V > +struct vector_item< V,41 > +{ + typedef typename V::item41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +template< typename V > +struct vector_item< V,42 > +{ + typedef typename V::item42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +template< typename V > +struct vector_item< V,43 > +{ + typedef typename V::item43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +template< typename V > +struct vector_item< V,44 > +{ + typedef typename V::item44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +template< typename V > +struct vector_item< V,45 > +{ + typedef typename V::item45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +template< typename V > +struct vector_item< V,46 > +{ + typedef typename V::item46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +template< typename V > +struct vector_item< V,47 > +{ + typedef typename V::item47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +template< typename V > +struct vector_item< V,48 > +{ + typedef typename V::item48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +template< typename V > +struct vector_item< V,49 > +{ + typedef typename V::item49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +template< typename V > +struct vector_item< V,50 > +{ + typedef typename V::item50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp new file mode 100644 index 0000000..ff6be1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/mwcw/vector_c.hpp @@ -0,0 +1,153 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c; + +template< + typename T + + > +struct vector_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector0_c +{ + typedef vector0_c type; +}; + +template< + typename T + , long C0 + > +struct vector_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector1_c< T,C0 > +{ + typedef vector1_c< T,C0 > type; +}; + +template< + typename T + , long C0, long C1 + > +struct vector_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector2_c< T,C0,C1 > +{ + typedef vector2_c< T,C0,C1 > type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct vector_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : vector3_c< T,C0,C1,C2 > +{ + typedef vector3_c< T,C0,C1,C2 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct vector_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector4_c< T,C0,C1,C2,C3 > +{ + typedef vector4_c< T,C0,C1,C2,C3 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct vector_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector5_c< T,C0,C1,C2,C3,C4 > +{ + typedef vector5_c< T,C0,C1,C2,C3,C4 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef vector6_c< T,C0,C1,C2,C3,C4,C5 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c + : vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp new file mode 100644 index 0000000..76bd30b --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename advance_backward<4>::template apply::type chunk_result_; + typedef typename advance_backward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp new file mode 100644 index 0000000..61387a5 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename advance_forward<4>::template apply::type chunk_result_; + typedef typename advance_forward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp new file mode 100644 index 0000000..d15078a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/apply.hpp @@ -0,0 +1,302 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct apply_impl_chooser; +} + +template< typename F > +struct apply0 : F +{ +}; + +template<> +struct apply0< arg<-1> > +{ + template< typename F > struct apply + : F + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply0< + F + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct apply1 + : F::template apply< + T1 + > +{ +}; + +template<> +struct apply1< arg<-1>,arg<-1> > +{ + template< + typename F, typename T1 + > + struct apply + : F::template apply< + T1 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply1< + F, T1 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : F::template apply< + T1, T2 + > +{ +}; + +template<> +struct apply2< arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2 + > + struct apply + : F::template apply< + T1, T2 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply2< + F, T1, T2 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : F::template apply< + T1, T2, T3 + > +{ +}; + +template<> +struct apply3< arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3 + > + struct apply + : F::template apply< + T1, T2, T3 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply3< + F, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : F::template apply< + T1, T2, T3, T4 + > +{ +}; + +template<> +struct apply4< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + > + struct apply + : F::template apply< + T1, T2, T3, T4 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply4< + F, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : F::template apply< + T1, T2, T3, T4, T5 + > +{ +}; + +template<> +struct apply5< arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1>,arg<-1> > +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct apply + : F::template apply< + T1, T2, T3, T4, T5 + > + { + }; +}; + +namespace aux { + +template<> +struct apply_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef apply5< + F, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_apply_arg +{ + static bool const value = true; +}; + +template<> +struct is_apply_arg +{ + static bool const value = false; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct apply_count_args +{ + static int const value = + is_apply_arg::value + is_apply_arg::value + + is_apply_arg::value + is_apply_arg::value + + is_apply_arg::value + ; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply + : aux::apply_impl_chooser< + aux::apply_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp new file mode 100644 index 0000000..cfb3e34 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/arg.hpp @@ -0,0 +1,123 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + static int const value = -1; + + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + static int const value = 1; + typedef arg<2> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + static int const value = 2; + typedef arg<3> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + static int const value = 3; + typedef arg<4> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + static int const value = 4; + typedef arg<5> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + static int const value = 5; + typedef arg<6> next; + typedef void_ tag; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/at.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/at.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp new file mode 100644 index 0000000..594e41a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/basic_bind.hpp @@ -0,0 +1,447 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename T::template apply< U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + static bool const value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + ; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + static bool const value = true; +}; + +template<> +struct is_bind_arg +{ + static bool const value = false; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + static int const value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + ; +}; + +} + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp new file mode 100644 index 0000000..3b63188 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/bind.hpp @@ -0,0 +1,551 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< bool > +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< + typename T, typename U1, typename U2, typename U3 + , typename U4 , typename U5 + > + struct result_ + { + typedef typename T::template apply< U1,U2,U3,U4,U5 >::type type; + }; +}; + +template< typename T > struct is_bind_template; + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,U1,U2,U3,U4,U5 > +{ +}; + +template< typename T > +struct replace_unnamed_arg_impl +{ + template< typename Arg > struct result_ + { + typedef Arg next_arg; + typedef T type; + }; +}; + +template<> +struct replace_unnamed_arg_impl< arg<-1> > +{ + template< typename Arg > struct result_ + { + typedef typename Arg::next next_arg; + typedef Arg type; + }; +}; + +template< typename T, typename Arg > +struct replace_unnamed_arg + : replace_unnamed_arg_impl::template result_ +{ +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag is_bind_helper(bind< F,T1,T2,T3,T4,T5 >*); + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st< F,T >*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd< F,T >*); + +template< typename T > struct is_bind_template +{ + static bool const value = + sizeof(aux::is_bind_helper(static_cast(0))) == + sizeof(aux::yes_tag) + ; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F + > +aux::yes_tag +is_bind_helper(bind0*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<0> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind0 type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1 + > +aux::yes_tag +is_bind_helper(bind1< F,T1 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<1> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind1< F,T1 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2 + > +aux::yes_tag +is_bind_helper(bind2< F,T1,T2 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<2> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind2< F,T1,T2 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3 + > +aux::yes_tag +is_bind_helper(bind3< F,T1,T2,T3 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<3> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind3< F,T1,T2,T3 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +aux::yes_tag +is_bind_helper(bind4< F,T1,T2,T3,T4 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<4> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind4< F,T1,T2,T3,T4 > type; + }; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +aux::yes_tag +is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*); + +} // namespace aux + +namespace aux { + +template<> +struct bind_impl_chooser<5> +{ + template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > + struct result_ + { + typedef bind5< F,T1,T2,T3,T4,T5 > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_bind_arg +{ + static bool const value = true; +}; + +template<> +struct is_bind_arg +{ + static bool const value = false; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct bind_count_args +{ + static int const value = + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + is_bind_arg::value + + is_bind_arg::value + ; +}; + +} + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args< T1,T2,T3,T4,T5 >::value + >::template result_< F,T1,T2,T3,T4,T5 >::type +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/fold_backward_impl.hpp new file mode 100644 index 0000000..17e39df --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/fold_backward_impl.hpp @@ -0,0 +1,292 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< long > +struct fold_backward_chunk; + +template<> +struct fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; +}; + +template<> +struct fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; +}; + +template<> +struct fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; +}; + +template<> +struct fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step; + +template< + typename Last + , typename State + > +struct fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_backward_null_step< Last,State > + , fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_step +{ + typedef fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + + ,typename ForwardOp::template apply::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl + : fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp new file mode 100644 index 0000000..33c577e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/fold_impl.hpp @@ -0,0 +1,247 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< long > +struct fold_chunk; + +template<> +struct fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; +}; + +template<> +struct fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; +}; + +template<> +struct fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; +}; + +template<> +struct fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step; + +template< + typename Last + , typename State + > +struct fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , fold_null_step< Last,State > + , fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_step +{ + typedef fold_chunk< -1 >::template result_< + typename First::next + , Last + + ,typename ForwardOp::template apply::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl + : fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..50392db --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_backward_impl.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< long > +struct iter_fold_backward_chunk; + +template<> +struct iter_fold_backward_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; + }; +}; + +template<> +struct iter_fold_backward_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct iter_fold_backward_chunk +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step; + +template< + typename Last + , typename State + > +struct iter_fold_backward_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_backward_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_backward_null_step< Last,State > + , iter_fold_backward_step< First,Last,State,BackwardOp,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_step +{ + typedef iter_fold_backward_chunk< -1 >::template result_< + typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl + : iter_fold_backward_chunk + ::template result_< First,Last,State,BackwardOp,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp new file mode 100644 index 0000000..a807f65 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename StateOp::template apply< State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp new file mode 100644 index 0000000..2311c83 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp @@ -0,0 +1,246 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< long > +struct iter_fold_chunk; + +template<> +struct iter_fold_chunk<0> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; + }; +}; + +template<> +struct iter_fold_chunk<1> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; + }; +}; + +template<> +struct iter_fold_chunk<2> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; + }; +}; + +template<> +struct iter_fold_chunk<3> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; + }; +}; + +template<> +struct iter_fold_chunk<4> +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; + }; +}; + +template< long N > +struct iter_fold_chunk +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step; + +template< + typename Last + , typename State + > +struct iter_fold_null_step +{ + typedef Last iterator; + typedef State state; +}; + +template<> +struct iter_fold_chunk< -1 > +{ + template< + typename First + , typename Last + , typename State + , typename ForwardOp + > + struct result_ + { + typedef typename if_< + typename is_same< First,Last >::type + , iter_fold_null_step< Last,State > + , iter_fold_step< First,Last,State,ForwardOp > + >::type res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; + }; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_step +{ + typedef iter_fold_chunk< -1 >::template result_< + typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , ForwardOp + > chunk_; + + typedef typename chunk_::state state; + typedef typename chunk_::iterator iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl + : iter_fold_chunk + ::template result_< First,Last,State,ForwardOp > +{ +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_helper.hpp new file mode 100644 index 0000000..953d826 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + static int const arity = 1; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + static int const arity = 2; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + static int const arity = 3; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + static int const arity = 4; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + static int const arity = 5; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp new file mode 100644 index 0000000..c487dcb --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_impl_chooser; +} + +namespace aux { + +template<> +struct list_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef list10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_list_arg +{ + static bool const value = true; +}; + +template<> +struct is_list_arg +{ + static bool const value = false; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct list_count_args +{ + static int const value = + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + + is_list_arg::value + is_list_arg::value + ; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list_impl +{ + typedef aux::list_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::list_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list + : aux::list_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::list_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list10.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list20.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list30.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list40.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list50.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp new file mode 100644 index 0000000..0da0870 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct list_c_impl_chooser; +} + +namespace aux { + +template<> +struct list_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list0_c< + T + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list1_c< + T, C0 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list2_c< + T, C0, C1 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list3_c< + T, C0, C1, C2 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list4_c< + T, C0, C1, C2, C3 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list5_c< + T, C0, C1, C2, C3, C4 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list6_c< + T, C0, C1, C2, C3, C4, C5 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list7_c< + T, C0, C1, C2, C3, C4, C5, C6 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct list_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef typename list10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_list_c_arg +{ + static bool const value = true; +}; + +template<> +struct is_list_c_arg +{ + static bool const value = false; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct list_c_count_args +{ + static int const value = + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + + is_list_c_arg::value + is_list_c_arg::value + ; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c_impl +{ + typedef aux::list_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::list_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c + : aux::list_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::list_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/meta_fun.hpp new file mode 100644 index 0000000..befe244 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/meta_fun.hpp @@ -0,0 +1,75 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + > +struct meta_fun1 +{ + template< typename U1 > struct apply + : F + { + }; +}; + +template< + template< typename P1, typename P2 > class F + > +struct meta_fun2 +{ + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + > +struct meta_fun3 +{ + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + > +struct meta_fun4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + > +struct meta_fun5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp new file mode 100644 index 0000000..f292f89 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector.hpp @@ -0,0 +1,278 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_impl_chooser; +} + +namespace aux { + +template<> +struct vector_impl_chooser<0> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector0< + + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<1> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector1< + T0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<2> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector2< + T0, T1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<3> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector3< + T0, T1, T2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<4> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector4< + T0, T1, T2, T3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<5> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector5< + T0, T1, T2, T3, T4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<6> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector6< + T0, T1, T2, T3, T4, T5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<7> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector7< + T0, T1, T2, T3, T4, T5, T6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<8> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector8< + T0, T1, T2, T3, T4, T5, T6, T7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<9> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector9< + T0, T1, T2, T3, T4, T5, T6, T7, T8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_impl_chooser<10> +{ + template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > + struct result_ + { + typedef vector10< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< typename T > +struct is_vector_arg +{ + static bool const value = true; +}; + +template<> +struct is_vector_arg +{ + static bool const value = false; +}; + +template< + typename T1, typename T2, typename T3, typename T4, typename T5 + , typename T6, typename T7, typename T8, typename T9, typename T10 + > +struct vector_count_args +{ + static int const value = + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + + is_vector_arg::value + is_vector_arg::value + ; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector_impl +{ + typedef aux::vector_count_args< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > arg_num_; + typedef typename aux::vector_impl_chooser< arg_num_::value > + ::template result_< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type; +}; + +} // namespace aux + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector + : aux::vector_impl< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type +{ + typedef typename aux::vector_impl< + T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector10.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector10.hpp new file mode 100644 index 0000000..5ae0a39 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector10.hpp @@ -0,0 +1,1131 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template<> struct vector_item_impl<0> +{ + template< typename V > struct result_ + { + typedef typename V::item0 type; + }; +}; +} + +template<> +struct size_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + : integral_c< int,0 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 0> > + : size_traits< aux::vector_tag< 0> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 0> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<1> +{ + template< typename V > struct result_ + { + typedef typename V::item1 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + : integral_c< int,1 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 1> > + : size_traits< aux::vector_tag< 1> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<2> +{ + template< typename V > struct result_ + { + typedef typename V::item2 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + : integral_c< int,2 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 2> > + : size_traits< aux::vector_tag< 2> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<3> +{ + template< typename V > struct result_ + { + typedef typename V::item3 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + : integral_c< int,3 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 3> > + : size_traits< aux::vector_tag< 3> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<4> +{ + template< typename V > struct result_ + { + typedef typename V::item4 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + : integral_c< int,4 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 4> > + : size_traits< aux::vector_tag< 4> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<5> +{ + template< typename V > struct result_ + { + typedef typename V::item5 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + : integral_c< int,5 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 5> > + : size_traits< aux::vector_tag< 5> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<6> +{ + template< typename V > struct result_ + { + typedef typename V::item6 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + : integral_c< int,6 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 6> > + : size_traits< aux::vector_tag< 6> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<7> +{ + template< typename V > struct result_ + { + typedef typename V::item7 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + : integral_c< int,7 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 7> > + : size_traits< aux::vector_tag< 7> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<8> +{ + template< typename V > struct result_ + { + typedef typename V::item8 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + : integral_c< int,8 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 8> > + : size_traits< aux::vector_tag< 8> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<9> +{ + template< typename V > struct result_ + { + typedef typename V::item9 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + : integral_c< int,9 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 9> > + : size_traits< aux::vector_tag< 9> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<10> +{ + template< typename V > struct result_ + { + typedef typename V::item10 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + : integral_c< int,10 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 10> > + : size_traits< aux::vector_tag< 10> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector20.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector20.hpp new file mode 100644 index 0000000..694d3c4 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector20.hpp @@ -0,0 +1,1319 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<11> +{ + template< typename V > struct result_ + { + typedef typename V::item11 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + : integral_c< int,11 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 11> > + : size_traits< aux::vector_tag< 11> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<12> +{ + template< typename V > struct result_ + { + typedef typename V::item12 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + : integral_c< int,12 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 12> > + : size_traits< aux::vector_tag< 12> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<13> +{ + template< typename V > struct result_ + { + typedef typename V::item13 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + : integral_c< int,13 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 13> > + : size_traits< aux::vector_tag< 13> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<14> +{ + template< typename V > struct result_ + { + typedef typename V::item14 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + : integral_c< int,14 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 14> > + : size_traits< aux::vector_tag< 14> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<15> +{ + template< typename V > struct result_ + { + typedef typename V::item15 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + : integral_c< int,15 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 15> > + : size_traits< aux::vector_tag< 15> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<16> +{ + template< typename V > struct result_ + { + typedef typename V::item16 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + : integral_c< int,16 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 16> > + : size_traits< aux::vector_tag< 16> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<17> +{ + template< typename V > struct result_ + { + typedef typename V::item17 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + : integral_c< int,17 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 17> > + : size_traits< aux::vector_tag< 17> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<18> +{ + template< typename V > struct result_ + { + typedef typename V::item18 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + : integral_c< int,18 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 18> > + : size_traits< aux::vector_tag< 18> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<19> +{ + template< typename V > struct result_ + { + typedef typename V::item19 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + : integral_c< int,19 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 19> > + : size_traits< aux::vector_tag< 19> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<20> +{ + template< typename V > struct result_ + { + typedef typename V::item20 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + : integral_c< int,20 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 20> > + : size_traits< aux::vector_tag< 20> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector30.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector30.hpp new file mode 100644 index 0000000..221d12c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector30.hpp @@ -0,0 +1,1539 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<21> +{ + template< typename V > struct result_ + { + typedef typename V::item21 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + : integral_c< int,21 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 21> > + : size_traits< aux::vector_tag< 21> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<22> +{ + template< typename V > struct result_ + { + typedef typename V::item22 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + : integral_c< int,22 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 22> > + : size_traits< aux::vector_tag< 22> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<23> +{ + template< typename V > struct result_ + { + typedef typename V::item23 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + : integral_c< int,23 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 23> > + : size_traits< aux::vector_tag< 23> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<24> +{ + template< typename V > struct result_ + { + typedef typename V::item24 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + : integral_c< int,24 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 24> > + : size_traits< aux::vector_tag< 24> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<25> +{ + template< typename V > struct result_ + { + typedef typename V::item25 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + : integral_c< int,25 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 25> > + : size_traits< aux::vector_tag< 25> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<26> +{ + template< typename V > struct result_ + { + typedef typename V::item26 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + : integral_c< int,26 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 26> > + : size_traits< aux::vector_tag< 26> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<27> +{ + template< typename V > struct result_ + { + typedef typename V::item27 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + : integral_c< int,27 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 27> > + : size_traits< aux::vector_tag< 27> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<28> +{ + template< typename V > struct result_ + { + typedef typename V::item28 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + : integral_c< int,28 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 28> > + : size_traits< aux::vector_tag< 28> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<29> +{ + template< typename V > struct result_ + { + typedef typename V::item29 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + : integral_c< int,29 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 29> > + : size_traits< aux::vector_tag< 29> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<30> +{ + template< typename V > struct result_ + { + typedef typename V::item30 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + : integral_c< int,30 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 30> > + : size_traits< aux::vector_tag< 30> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector40.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector40.hpp new file mode 100644 index 0000000..e426c6f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector40.hpp @@ -0,0 +1,1759 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<31> +{ + template< typename V > struct result_ + { + typedef typename V::item31 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + : integral_c< int,31 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 31> > + : size_traits< aux::vector_tag< 31> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<32> +{ + template< typename V > struct result_ + { + typedef typename V::item32 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + : integral_c< int,32 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 32> > + : size_traits< aux::vector_tag< 32> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<33> +{ + template< typename V > struct result_ + { + typedef typename V::item33 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + : integral_c< int,33 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 33> > + : size_traits< aux::vector_tag< 33> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<34> +{ + template< typename V > struct result_ + { + typedef typename V::item34 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + : integral_c< int,34 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 34> > + : size_traits< aux::vector_tag< 34> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<35> +{ + template< typename V > struct result_ + { + typedef typename V::item35 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + : integral_c< int,35 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 35> > + : size_traits< aux::vector_tag< 35> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<36> +{ + template< typename V > struct result_ + { + typedef typename V::item36 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + : integral_c< int,36 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 36> > + : size_traits< aux::vector_tag< 36> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<37> +{ + template< typename V > struct result_ + { + typedef typename V::item37 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + : integral_c< int,37 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 37> > + : size_traits< aux::vector_tag< 37> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<38> +{ + template< typename V > struct result_ + { + typedef typename V::item38 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + : integral_c< int,38 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 38> > + : size_traits< aux::vector_tag< 38> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<39> +{ + template< typename V > struct result_ + { + typedef typename V::item39 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + : integral_c< int,39 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 39> > + : size_traits< aux::vector_tag< 39> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<40> +{ + template< typename V > struct result_ + { + typedef typename V::item40 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + : integral_c< int,40 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 40> > + : size_traits< aux::vector_tag< 40> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector50.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector50.hpp new file mode 100644 index 0000000..56165c9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector50.hpp @@ -0,0 +1,1979 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<41> +{ + template< typename V > struct result_ + { + typedef typename V::item41 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + : integral_c< int,41 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 41> > + : size_traits< aux::vector_tag< 41> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<42> +{ + template< typename V > struct result_ + { + typedef typename V::item42 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + : integral_c< int,42 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 42> > + : size_traits< aux::vector_tag< 42> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<43> +{ + template< typename V > struct result_ + { + typedef typename V::item43 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + : integral_c< int,43 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 43> > + : size_traits< aux::vector_tag< 43> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<44> +{ + template< typename V > struct result_ + { + typedef typename V::item44 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + : integral_c< int,44 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 44> > + : size_traits< aux::vector_tag< 44> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<45> +{ + template< typename V > struct result_ + { + typedef typename V::item45 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + : integral_c< int,45 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 45> > + : size_traits< aux::vector_tag< 45> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<46> +{ + template< typename V > struct result_ + { + typedef typename V::item46 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + : integral_c< int,46 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 46> > + : size_traits< aux::vector_tag< 46> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<47> +{ + template< typename V > struct result_ + { + typedef typename V::item47 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + : integral_c< int,47 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 47> > + : size_traits< aux::vector_tag< 47> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<48> +{ + template< typename V > struct result_ + { + typedef typename V::item48 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + : integral_c< int,48 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 48> > + : size_traits< aux::vector_tag< 48> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<49> +{ + template< typename V > struct result_ + { + typedef typename V::item49 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + : integral_c< int,49 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 49> > + : size_traits< aux::vector_tag< 49> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +namespace aux { +template<> struct vector_item_impl<50> +{ + template< typename V > struct result_ + { + typedef typename V::item50 type; + }; +}; +} + +template<> +struct front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +template<> +struct size_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + : integral_c< int,50 > + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag< 50> > + : size_traits< aux::vector_tag< 50> > +{ +}; + +template<> +struct clear_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp new file mode 100644 index 0000000..69e98dd --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/no_ctps/vector_c.hpp @@ -0,0 +1,291 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { +template< int > struct vector_c_impl_chooser; +} + +namespace aux { + +template<> +struct vector_c_impl_chooser<0> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector0_c< + T + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<1> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector1_c< + T, C0 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<2> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector2_c< + T, C0, C1 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<3> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector3_c< + T, C0, C1, C2 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<4> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector4_c< + T, C0, C1, C2, C3 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<5> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector5_c< + T, C0, C1, C2, C3, C4 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<6> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector6_c< + T, C0, C1, C2, C3, C4, C5 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<7> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector7_c< + T, C0, C1, C2, C3, C4, C5, C6 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<8> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector8_c< + T, C0, C1, C2, C3, C4, C5, C6, C7 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<9> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector9_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template<> +struct vector_c_impl_chooser<10> +{ + template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + , long C7, long C8, long C9 + > + struct result_ + { + typedef vector10_c< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + > type; + }; +}; + +} // namespace aux + +namespace aux { + +template< long T > +struct is_vector_c_arg +{ + static bool const value = true; +}; + +template<> +struct is_vector_c_arg +{ + static bool const value = false; +}; + +template< + long T1, long T2, long T3, long T4, long T5, long T6, long T7, long T8 + , long T9, long T10 + > +struct vector_c_count_args +{ + static int const value = + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + + is_vector_c_arg::value + is_vector_c_arg::value + ; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c_impl +{ + typedef aux::vector_c_count_args< C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > arg_num_; + typedef typename aux::vector_c_impl_chooser< arg_num_::value > + ::template result_< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace aux + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c + : aux::vector_c_impl< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type +{ + typedef typename aux::vector_c_impl< + T, C0, C1, C2, C3, C4, C5, C6, C7, C8, C9 + >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp b/include/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp new file mode 100644 index 0000000..76bd30b --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/advance_backward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_backward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_backward; + +template<> +struct advance_backward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_backward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_backward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_backward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_backward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::prior iter1; + typedef typename iter1::prior iter2; + typedef typename iter2::prior iter3; + typedef typename iter3::prior iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_backward +{ + template< typename Iterator > struct apply + { + typedef typename advance_backward<4>::template apply::type chunk_result_; + typedef typename advance_backward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp b/include/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp new file mode 100644 index 0000000..61387a5 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/advance_forward.hpp @@ -0,0 +1,83 @@ +// preprocessed version of 'boost/mpl/aux_/advance_forward.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< long N > struct advance_forward; + +template<> +struct advance_forward<0> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef iter0 type; + }; +}; + +template<> +struct advance_forward<1> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef iter1 type; + }; +}; + +template<> +struct advance_forward<2> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef iter2 type; + }; +}; + +template<> +struct advance_forward<3> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef iter3 type; + }; +}; + +template<> +struct advance_forward<4> +{ + template< typename Iterator > struct apply + { + typedef Iterator iter0; + typedef typename iter0::next iter1; + typedef typename iter1::next iter2; + typedef typename iter2::next iter3; + typedef typename iter3::next iter4; + typedef iter4 type; + }; +}; + +template< long N > +struct advance_forward +{ + template< typename Iterator > struct apply + { + typedef typename advance_forward<4>::template apply::type chunk_result_; + typedef typename advance_forward<( (N - 4) < 0 ? 0 : N - 4 )>::template apply::type type; + }; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/apply.hpp b/include/boost/mpl/aux_/preprocessed/plain/apply.hpp new file mode 100644 index 0000000..9dc3d5c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/apply.hpp @@ -0,0 +1,121 @@ +// preprocessed version of 'boost/mpl/apply.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct apply; + +template< typename F > +struct apply0 : F +{ +}; + +template< + typename F + > +struct apply< F,void_,void_,void_,void_,void_ > + : apply0 +{ +}; + +template< + typename F, typename T1 + > +struct apply1 + : F::template apply< + T1 + > +{ +}; + +template< + typename F, typename T1 + > +struct apply< F,T1,void_,void_,void_,void_ > + : apply1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply2 + : F::template apply< + T1, T2 + > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct apply< F,T1,T2,void_,void_,void_ > + : apply2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply3 + : F::template apply< + T1, T2, T3 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct apply< F,T1,T2,T3,void_,void_ > + : apply3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply4 + : F::template apply< + T1, T2, T3, T4 + > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct apply< F,T1,T2,T3,T4,void_ > + : apply4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply5 + : F::template apply< + T1, T2, T3, T4, T5 + > +{ +}; + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct apply + : apply5< F,T1,T2,T3,T4,T5 > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/arg.hpp b/include/boost/mpl/aux_/preprocessed/plain/arg.hpp new file mode 100644 index 0000000..60e2aa3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/arg.hpp @@ -0,0 +1,116 @@ +// preprocessed version of 'boost/mpl/arg.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template<> struct arg<-1> +{ + static int const value = -1; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<1> +{ + static int const value = 1; + typedef arg<2> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U1 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<2> +{ + static int const value = 2; + typedef arg<3> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U2 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<3> +{ + static int const value = 3; + typedef arg<4> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U3 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<4> +{ + static int const value = 4; + typedef arg<5> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U4 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +template<> struct arg<5> +{ + static int const value = 5; + typedef arg<6> next; + + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + typedef U5 type; + typedef char arity_constraint[ + ::boost::mpl::aux::reject_if_void_::value + ]; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/at.hpp b/include/boost/mpl/aux_/preprocessed/plain/at.hpp new file mode 100644 index 0000000..e69de29 diff --git a/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp b/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp new file mode 100644 index 0000000..17b1d14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/basic_bind.hpp @@ -0,0 +1,377 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename arg::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_; + typedef typename aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 >::type t1; + typedef typename aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 >::type t2; + typedef typename aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 >::type t3; + typedef typename aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 >::type t4; + typedef typename aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/bind.hpp b/include/boost/mpl/aux_/preprocessed/plain/bind.hpp new file mode 100644 index 0000000..308b982 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/bind.hpp @@ -0,0 +1,474 @@ +// preprocessed version of 'boost/mpl/bind.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename T, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg +{ + typedef T type; +}; + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next_arg; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next_arg; + typedef Arg type; +}; + +} // namespace aux + +template< + typename F, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + > +struct bind; + +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +template< + int N, typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< arg,U1,U2,U3,U4,U5 > +{ + typedef typename arg::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< bind,U1,U2,U3,U4,U5 > +{ + typedef bind< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind1st,U1,U2,U3,U4,U5 > +{ + typedef bind1st< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +template< + typename F, typename T, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< bind2nd,U1,U2,U3,U4,U5 > +{ + typedef bind2nd< F,T > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind0 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + public: + typedef typename f_::type type; + }; +}; + +namespace aux { + +template< + typename F, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind0,U1, U2, U3, U4, U5 + > +{ + typedef bind0 f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F + > +struct bind< F,void_,void_,void_,void_,void_ > + : bind0 +{ +}; + +template< + typename F, typename T1 + > +struct bind1 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + public: + typedef typename f_::template apply::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename U1, typename U2, typename U3 + , typename U4, typename U5 + > +struct resolve_bind_arg< + bind1< F,T1 >,U1, U2, U3, U4, U5 + > +{ + typedef bind1< F,T1 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1 + > +struct bind< F,T1,void_,void_,void_,void_ > + : bind1< F,T1 > +{ +}; + +template< + typename F, typename T1, typename T2 + > +struct bind2 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + public: + typedef typename f_::template apply< t1,t2 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename U1, typename U2 + , typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind2< F,T1,T2 >,U1, U2, U3, U4, U5 + > +{ + typedef bind2< F,T1,T2 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2 + > +struct bind< F,T1,T2,void_,void_,void_ > + : bind2< F,T1,T2 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind3 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + public: + typedef typename f_::template apply< t1,t2,t3 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename U1 + , typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind3< F,T1,T2,T3 >,U1, U2, U3, U4, U5 + > +{ + typedef bind3< F,T1,T2,T3 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3 + > +struct bind< F,T1,T2,T3,void_,void_ > + : bind3< F,T1,T2,T3 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind4 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + public: + typedef typename f_::template apply< t1,t2,t3,t4 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename U1, typename U2, typename U3, typename U4, typename U5 + > +struct resolve_bind_arg< + bind4< F,T1,T2,T3,T4 >,U1, U2, U3, U4, U5 + > +{ + typedef bind4< F,T1,T2,T3,T4 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + > +struct bind< F,T1,T2,T3,T4,void_ > + : bind4< F,T1,T2,T3,T4 > +{ +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind5 +{ + template< + typename U1 = void_, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + { + private: + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_; + + typedef aux::replace_unnamed_arg< T1,n1 > r1; + typedef typename r1::type a1; + typedef typename r1::next_arg n2; + typedef typename aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 >::type t1; + + typedef aux::replace_unnamed_arg< T2,n2 > r2; + typedef typename r2::type a2; + typedef typename r2::next_arg n3; + typedef typename aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 >::type t2; + + typedef aux::replace_unnamed_arg< T3,n3 > r3; + typedef typename r3::type a3; + typedef typename r3::next_arg n4; + typedef typename aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 >::type t3; + + typedef aux::replace_unnamed_arg< T4,n4 > r4; + typedef typename r4::type a4; + typedef typename r4::next_arg n5; + typedef typename aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 >::type t4; + + typedef aux::replace_unnamed_arg< T5,n5 > r5; + typedef typename r5::type a5; + typedef typename r5::next_arg n6; + typedef typename aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 >::type t5; + + public: + typedef typename f_::template apply< t1,t2,t3,t4,t5 >::type type; + }; +}; + +namespace aux { + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename U1, typename U2, typename U3, typename U4 + , typename U5 + > +struct resolve_bind_arg< + bind5< F,T1,T2,T3,T4,T5 >,U1, U2, U3, U4, U5 + > +{ + typedef bind5< F,T1,T2,T3,T4,T5 > f_; + typedef typename f_::template apply< U1,U2,U3,U4,U5 >::type type; +}; + +} // namespace aux + +// primary template (not a specialization!) +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct bind + : bind5< F,T1,T2,T3,T4,T5 > +{ +}; + +template< typename F, typename T > +struct bind1st +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< T,U > + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U, typename U2 = void_, typename U3 = void_ + , typename U4 = void_, typename U5 = void_ + > + struct apply + : F::template apply< U,T > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/plain/fold_backward_impl.hpp new file mode 100644 index 0000000..808774f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/fold_backward_impl.hpp @@ -0,0 +1,223 @@ +// preprocessed version of 'boost/mpl/aux_/fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply::type bkwd_state3; + typedef typename BackwardOp::template apply::type bkwd_state2; + typedef typename BackwardOp::template apply::type bkwd_state1; + typedef typename BackwardOp::template apply::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef fold_backward_impl< + -1 + , typename First::next + , Last + + ,typename ForwardOp::template apply::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp new file mode 100644 index 0000000..d1214ec --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/fold_impl.hpp @@ -0,0 +1,177 @@ +// preprocessed version of 'boost/mpl/aux_/fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl +{ + typedef fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,First,Last,State,ForwardOp > + : fold_impl< + -1 + , typename First::next + , Last + + ,typename ForwardOp::template apply::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp b/include/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp new file mode 100644 index 0000000..c9813c6 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/full_lambda.hpp @@ -0,0 +1,579 @@ +// preprocessed version of 'boost/mpl/aux_/full_lambda.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , bool Protect = false + + > +struct lambda_impl +{ + typedef false_c is_le; + typedef T type; +}; + +template< + typename T + + > +struct lambda + : lambda_impl< T,false > +{ +}; + +namespace aux { + +template< + bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false + , bool C5 = false + > +struct lambda_or + : true_c +{ +}; + +template<> +struct lambda_or< false,false,false,false,false > + : false_c +{ +}; + +} // namespace aux + +template< int N, bool Protect > +struct lambda_impl< arg,Protect > +{ + typedef true_c is_le; + typedef arg type; +}; + +template< + typename F + , bool Protect + > +struct lambda_impl< + bind0 + , Protect + > +{ + typedef false_c is_le; + typedef bind0< + F + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1 > class F + , typename L1 + > +struct le_result1 +{ + typedef F< + typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,false,F,L1 > +{ + typedef bind1< + meta_fun1 + , typename L1::type + > type; +}; + +template< + template< typename P1 > class F + , typename L1 + > +struct le_result1< true,true,F,L1 > +{ + typedef protect< bind1< + meta_fun1 + , typename L1::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1 > class F + , typename T1 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef aux::lambda_or< + l1::is_le::value + > is_le; + + typedef typename aux::le_result1< + is_le::value + , Protect + , F + , l1 + >::type type; +}; + +template< + typename F, typename T1 + , bool Protect + > +struct lambda_impl< + bind1< F,T1 > + , Protect + > +{ + typedef false_c is_le; + typedef bind1< + F + , T1 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2 +{ + typedef F< + typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,false,F,L1,L2 > +{ + typedef bind2< + meta_fun2 + , typename L1::type, typename L2::type + > type; +}; + +template< + template< typename P1, typename P2 > class F + , typename L1, typename L2 + > +struct le_result2< true,true,F,L1,L2 > +{ + typedef protect< bind2< + meta_fun2 + , typename L1::type, typename L2::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value + > is_le; + + typedef typename aux::le_result2< + is_le::value + , Protect + , F + , l1, l2 + >::type type; +}; + +template< + typename F, typename T1, typename T2 + , bool Protect + > +struct lambda_impl< + bind2< F,T1,T2 > + , Protect + > +{ + typedef false_c is_le; + typedef bind2< + F + , T1, T2 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,false,F,L1,L2,L3 > +{ + typedef bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename L1, typename L2, typename L3 + > +struct le_result3< true,true,F,L1,L2,L3 > +{ + typedef protect< bind3< + meta_fun3 + , typename L1::type, typename L2::type, typename L3::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + > is_le; + + typedef typename aux::le_result3< + is_le::value + , Protect + , F + , l1, l2, l3 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3 + , bool Protect + > +struct lambda_impl< + bind3< F,T1,T2,T3 > + , Protect + > +{ + typedef false_c is_le; + typedef bind3< + F + , T1, T2, T3 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,false,F,L1,L2,L3,L4 > +{ + typedef bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > type; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename L1, typename L2, typename L3, typename L4 + > +struct le_result4< true,true,F,L1,L2,L3,L4 > +{ + typedef protect< bind4< + meta_fun4 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type + > > type; +}; + +} // namespace aux + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value + > is_le; + + typedef typename aux::le_result4< + is_le::value + , Protect + , F + , l1, l2, l3, l4 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , bool Protect + > +struct lambda_impl< + bind4< F,T1,T2,T3,T4 > + , Protect + > +{ + typedef false_c is_le; + typedef bind4< + F + , T1, T2, T3, T4 + > type; +}; + +namespace aux { + +template< + bool IsLE + , bool Protect + , template< typename P1, typename P2, typename P3, typename P4, typename P5 > class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5 +{ + typedef F< + typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,false,F,L1,L2,L3,L4,L5 > +{ + typedef bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > type; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename L1, typename L2, typename L3, typename L4, typename L5 + > +struct le_result5< true,true,F,L1,L2,L3,L4,L5 > +{ + typedef protect< bind5< + meta_fun5 + , typename L1::type, typename L2::type, typename L3::type + , typename L4::type, typename L5::type + > > type; +}; + +} // namespace aux + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda< F > + : lambda_impl< F,true > +{ +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + , bool Protect + > +struct lambda_impl< F,Protect > +{ + typedef lambda_impl l1; + typedef lambda_impl l2; + typedef lambda_impl l3; + typedef lambda_impl l4; + typedef lambda_impl l5; + + typedef aux::lambda_or< + l1::is_le::value, l2::is_le::value, l3::is_le::value + , l4::is_le::value, l5::is_le::value + > is_le; + + typedef typename aux::le_result5< + is_le::value + , Protect + , F + , l1, l2, l3, l4, l5 + >::type type; +}; + +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< + bind5< F,T1,T2,T3,T4,T5 > + , Protect + > +{ + typedef false_c is_le; + typedef bind5< + F + , T1, T2, T3, T4, T5 + > type; +}; + +// special case for 'protect' +template< typename T, bool Protect > +struct lambda_impl< protect,Protect > +{ + typedef false_c is_le; + typedef protect type; +}; + +// specializations for main 'bind', 'bind1st' and 'bind2nd' forms +template< + typename F, typename T1, typename T2, typename T3, typename T4 + , typename T5 + , bool Protect + > +struct lambda_impl< bind,Protect > +{ + typedef false_c is_le; + typedef bind< F,T1,T2,T3,T4,T5 > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind1st,Protect > +{ + typedef false_c is_le; + typedef bind1st< F,T > type; +}; + +template< + typename F, typename T + , bool Protect + > +struct lambda_impl< bind2nd,Protect > +{ + typedef false_c is_le; + typedef bind2nd< F,T > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/iter_fold_backward_impl.hpp b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_backward_impl.hpp new file mode 100644 index 0000000..816de20 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_backward_impl.hpp @@ -0,0 +1,222 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_backward_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 0,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef fwd_state0 bkwd_state0; + typedef bkwd_state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + + + typedef fwd_state1 bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + typedef bkwd_state0 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 2,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + + + typedef fwd_state2 bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 3,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + + + typedef fwd_state3 bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< 4,First,Last,State,BackwardOp,ForwardOp > +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef fwd_state4 bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl +{ + typedef First iter0; + typedef State fwd_state0; + typedef typename ForwardOp::template apply< fwd_state0,iter0 >::type fwd_state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< fwd_state1,iter1 >::type fwd_state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< fwd_state2,iter2 >::type fwd_state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< fwd_state3,iter3 >::type fwd_state4; + typedef typename iter3::next iter4; + + + typedef iter_fold_backward_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , iter4 + , Last + , fwd_state4 + , BackwardOp + , ForwardOp + > nested_chunk; + + typedef typename nested_chunk::state bkwd_state4; + typedef typename BackwardOp::template apply< bkwd_state4,iter3 >::type bkwd_state3; + typedef typename BackwardOp::template apply< bkwd_state3,iter2 >::type bkwd_state2; + typedef typename BackwardOp::template apply< bkwd_state2,iter1 >::type bkwd_state1; + typedef typename BackwardOp::template apply< bkwd_state1,iter0 >::type bkwd_state0; + + + typedef bkwd_state0 state; + typedef typename nested_chunk::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,First,Last,State,BackwardOp,ForwardOp > +{ + typedef iter_fold_backward_impl< + -1 + , typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , BackwardOp + , ForwardOp + > nested_step; + + typedef typename BackwardOp::template apply::type state; + typedef typename nested_step::iterator iterator; +}; + +template< + typename Last + , typename State + , typename BackwardOp + , typename ForwardOp + > +struct iter_fold_backward_impl< -1,Last,Last,State,BackwardOp,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp new file mode 100644 index 0000000..a807f65 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_if_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +template< typename Iterator, typename State > +struct iter_fold_if_null_step +{ + typedef State state; + typedef Iterator iterator; +}; + +template< bool > +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef typename StateOp::template apply< State,Iterator >::type state; + typedef typename IteratorOp::type iterator; + }; +}; + +template<> +struct iter_fold_if_step_impl +{ + template< + typename Iterator + , typename State + , typename StateOp + , typename IteratorOp + > + struct result_ + { + typedef State state; + typedef Iterator iterator; + }; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename Predicate + > +struct iter_fold_if_forward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,ForwardOp,next > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename BackwardOp + , typename Predicate + > +struct iter_fold_if_backward_step +{ + typedef typename Predicate::template apply< State,Iterator >::type not_last; + typedef typename iter_fold_if_step_impl< + BOOST_MPL_AUX_BOOL_VALUE_WKND(not_last)::value + >::template result_< Iterator,State,BackwardOp,identity > impl_; + + typedef typename impl_::state state; + typedef typename impl_::iterator iterator; +}; + +template< + typename Iterator + , typename State + , typename ForwardOp + , typename ForwardPredicate + , typename BackwardOp + , typename BackwardPredicate + > +struct iter_fold_if_impl +{ + private: + typedef iter_fold_if_null_step< Iterator,State > forward_step0; + typedef iter_fold_if_forward_step< typename forward_step0::iterator, typename forward_step0::state, ForwardOp, ForwardPredicate > forward_step1; + typedef iter_fold_if_forward_step< typename forward_step1::iterator, typename forward_step1::state, ForwardOp, ForwardPredicate > forward_step2; + typedef iter_fold_if_forward_step< typename forward_step2::iterator, typename forward_step2::state, ForwardOp, ForwardPredicate > forward_step3; + typedef iter_fold_if_forward_step< typename forward_step3::iterator, typename forward_step3::state, ForwardOp, ForwardPredicate > forward_step4; + + + typedef typename if_< + typename forward_step4::not_last + , iter_fold_if_impl< + typename forward_step4::iterator + , typename forward_step4::state + , ForwardOp + , ForwardPredicate + , BackwardOp + , BackwardPredicate + > + , iter_fold_if_null_step< + typename forward_step4::iterator + , typename forward_step4::state + > + >::type backward_step4; + + typedef iter_fold_if_backward_step< typename forward_step3::iterator, typename backward_step4::state, BackwardOp, BackwardPredicate > backward_step3; + typedef iter_fold_if_backward_step< typename forward_step2::iterator, typename backward_step3::state, BackwardOp, BackwardPredicate > backward_step2; + typedef iter_fold_if_backward_step< typename forward_step1::iterator, typename backward_step2::state, BackwardOp, BackwardPredicate > backward_step1; + typedef iter_fold_if_backward_step< typename forward_step0::iterator, typename backward_step1::state, BackwardOp, BackwardPredicate > backward_step0; + + + public: + typedef typename backward_step0::state state; + typedef typename backward_step4::iterator iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp new file mode 100644 index 0000000..e8dc4ec --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp @@ -0,0 +1,176 @@ +// preprocessed version of 'boost/mpl/aux_/iter_fold_impl.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { +namespace aux { + +// forward declaration +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 0,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef state0 state; + typedef iter0 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 1,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + + + typedef state1 state; + typedef iter1 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 2,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + + + typedef state2 state; + typedef iter2 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 3,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + + + typedef state3 state; + typedef iter3 iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< 4,First,Last,State,ForwardOp > +{ + typedef First iter0; + typedef State state0; + typedef typename ForwardOp::template apply< state0,iter0 >::type state1; + typedef typename iter0::next iter1; + typedef typename ForwardOp::template apply< state1,iter1 >::type state2; + typedef typename iter1::next iter2; + typedef typename ForwardOp::template apply< state2,iter2 >::type state3; + typedef typename iter2::next iter3; + typedef typename ForwardOp::template apply< state3,iter3 >::type state4; + typedef typename iter3::next iter4; + + + typedef state4 state; + typedef iter4 iterator; +}; + +template< + long N + , typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl +{ + typedef iter_fold_impl< + 4 + , First + , Last + , State + , ForwardOp + > chunk_; + + typedef iter_fold_impl< + ( (N - 4) < 0 ? 0 : N - 4 ) + , typename chunk_::iterator + , Last + , typename chunk_::state + , ForwardOp + > res_; + + typedef typename res_::state state; + typedef typename res_::iterator iterator; +}; + +template< + typename First + , typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,First,Last,State,ForwardOp > + : iter_fold_impl< + -1 + , typename First::next + , Last + , typename ForwardOp::template apply< State,First >::type + , ForwardOp + > +{ +}; + +template< + typename Last + , typename State + , typename ForwardOp + > +struct iter_fold_impl< -1,Last,Last,State,ForwardOp > +{ + typedef State state; + typedef Last iterator; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lambda_helper.hpp b/include/boost/mpl/aux_/preprocessed/plain/lambda_helper.hpp new file mode 100644 index 0000000..953d826 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lambda_helper.hpp @@ -0,0 +1,120 @@ +// preprocessed version of 'boost/mpl/lambda_helper.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + , typename T1 + > +struct lambda_helper1 +{ + struct rebind + { + static int const arity = 1; + typedef T1 arg1; + + template< typename U1 > struct apply + : F + { + }; + }; +}; + +template< + template< typename P1, typename P2 > class F + , typename T1, typename T2 + > +struct lambda_helper2 +{ + struct rebind + { + static int const arity = 2; + typedef T1 arg1; + typedef T2 arg2; + + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + , typename T1, typename T2, typename T3 + > +struct lambda_helper3 +{ + struct rebind + { + static int const arity = 3; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + , typename T1, typename T2, typename T3, typename T4 + > +struct lambda_helper4 +{ + struct rebind + { + static int const arity = 4; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + , typename T1, typename T2, typename T3, typename T4, typename T5 + > +struct lambda_helper5 +{ + struct rebind + { + static int const arity = 5; + typedef T1 arg1; + typedef T2 arg2; + typedef T3 arg3; + typedef T4 arg4; + typedef T5 arg5; + + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp b/include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp new file mode 100644 index 0000000..b5e4c3e --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/lambda_no_ctps.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +namespace aux { + +template< int arity, bool Protect > struct lambda_impl +{ + template< typename T > struct result_ + { + typedef T type; + }; +}; + +template<> struct lambda_impl<1, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > type; + }; +}; + +template<> struct lambda_impl<1, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind1< + f_ + , typename lambda< typename f_::arg1, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<2, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > type; + }; +}; + +template<> struct lambda_impl<2, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind2< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<3, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > type; + }; +}; + +template<> struct lambda_impl<3, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind3< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<4, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > type; + }; +}; + +template<> struct lambda_impl<4, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind4< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type + > > type; + }; +}; + +template<> struct lambda_impl<5, false> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > type; + }; +}; + +template<> struct lambda_impl<5, true> +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + typedef protect< bind5< + f_ + + ,typename lambda< typename f_::arg1, false >::type, typename lambda< typename f_::arg2, false >::type, typename lambda< typename f_::arg3, false >::type, typename lambda< typename f_::arg4, false >::type, typename lambda< typename f_::arg5, false >::type + > > type; + }; +}; + +} // namespace aux + +template< typename T, bool Protect = true > +struct lambda + + : aux::lambda_impl< ::boost::mpl::aux::template_arity::value, Protect > + + ::template result_ +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list.hpp b/include/boost/mpl/aux_/preprocessed/plain/list.hpp new file mode 100644 index 0000000..853ff61 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/list.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct list; + +template< + + > +struct list< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : list0< > +{ + typedef list0< > type; +}; + +template< + typename T0 + > +struct list< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list1 +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : list2< T0,T1 > +{ + typedef list2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : list3< T0,T1,T2 > +{ + typedef list3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : list4< T0,T1,T2,T3 > +{ + typedef list4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : list5< T0,T1,T2,T3,T4 > +{ + typedef list5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : list6< T0,T1,T2,T3,T4,T5 > +{ + typedef list6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : list7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef list7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : list8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef list8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef list9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list + : list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef list10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list10.hpp b/include/boost/mpl/aux_/preprocessed/plain/list10.hpp new file mode 100644 index 0000000..fe842dc --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list10.hpp @@ -0,0 +1,144 @@ +// preprocessed version of 'boost/mpl/list/list10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct list1 + : list_node< + integral_c< long,1 > + , T0 + , null_node + > +{ + typedef list1 type; +}; + +template< + typename T0, typename T1 + > +struct list2 + : list_node< + integral_c< long,2 > + , T0 + , list1 + > +{ + typedef list2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct list3 + : list_node< + integral_c< long,3 > + , T0 + , list2< T1,T2 > + > +{ + typedef list3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct list4 + : list_node< + integral_c< long,4 > + , T0 + , list3< T1,T2,T3 > + > +{ + typedef list4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct list5 + : list_node< + integral_c< long,5 > + , T0 + , list4< T1,T2,T3,T4 > + > +{ + typedef list5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct list6 + : list_node< + integral_c< long,6 > + , T0 + , list5< T1,T2,T3,T4,T5 > + > +{ + typedef list6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct list7 + : list_node< + integral_c< long,7 > + , T0 + , list6< T1,T2,T3,T4,T5,T6 > + > +{ + typedef list7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct list8 + : list_node< + integral_c< long,8 > + , T0 + , list7< T1,T2,T3,T4,T5,T6,T7 > + > +{ + typedef list8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct list9 + : list_node< + integral_c< long,9 > + , T0 + , list8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ + typedef list9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct list10 + : list_node< + integral_c< long,10 > + , T0 + , list9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ + typedef list10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list10_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list10_c.hpp new file mode 100644 index 0000000..2cf9dba --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list10_c.hpp @@ -0,0 +1,149 @@ +// preprocessed version of 'boost/mpl/list/list10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct list1_c + : list_node< + integral_c< long,1 > + , integral_c< T,C0 > + , null_node + > +{ + typedef list1_c type; +}; + +template< + typename T + , T C0, T C1 + > +struct list2_c + : list_node< + integral_c< long,2 > + , integral_c< T,C0 > + , list1_c< T,C1 > + > +{ + typedef list2_c type; +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct list3_c + : list_node< + integral_c< long,3 > + , integral_c< T,C0 > + , list2_c< T,C1,C2 > + > +{ + typedef list3_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct list4_c + : list_node< + integral_c< long,4 > + , integral_c< T,C0 > + , list3_c< T,C1,C2,C3 > + > +{ + typedef list4_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct list5_c + : list_node< + integral_c< long,5 > + , integral_c< T,C0 > + , list4_c< T,C1,C2,C3,C4 > + > +{ + typedef list5_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct list6_c + : list_node< + integral_c< long,6 > + , integral_c< T,C0 > + , list5_c< T,C1,C2,C3,C4,C5 > + > +{ + typedef list6_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct list7_c + : list_node< + integral_c< long,7 > + , integral_c< T,C0 > + , list6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ + typedef list7_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct list8_c + : list_node< + integral_c< long,8 > + , integral_c< T,C0 > + , list7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ + typedef list8_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct list9_c + : list_node< + integral_c< long,9 > + , integral_c< T,C0 > + , list8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ + typedef list9_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct list10_c + : list_node< + integral_c< long,10 > + , integral_c< T,C0 > + , list9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ + typedef list10_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list20.hpp b/include/boost/mpl/aux_/preprocessed/plain/list20.hpp new file mode 100644 index 0000000..044762f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list20.hpp @@ -0,0 +1,164 @@ +// preprocessed version of 'boost/mpl/list/list20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct list11 + : list_node< + integral_c< long,11 > + , T0 + , list10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ + typedef list11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct list12 + : list_node< + integral_c< long,12 > + , T0 + , list11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ + typedef list12 type; +}; + +template< + 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 + > +struct list13 + : list_node< + integral_c< long,13 > + , T0 + , list12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ + typedef list13 type; +}; + +template< + 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 + > +struct list14 + : list_node< + integral_c< long,14 > + , T0 + , list13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ + typedef list14 type; +}; + +template< + 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 + > +struct list15 + : list_node< + integral_c< long,15 > + , T0 + , list14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ + typedef list15 type; +}; + +template< + 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 + > +struct list16 + : list_node< + integral_c< long,16 > + , T0 + , list15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ + typedef list16 type; +}; + +template< + 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 + > +struct list17 + : list_node< + integral_c< long,17 > + , T0 + , list16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ + typedef list17 type; +}; + +template< + 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 + > +struct list18 + : list_node< + integral_c< long,18 > + , T0 + , list17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ + typedef list18 type; +}; + +template< + 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 + > +struct list19 + : list_node< + integral_c< long,19 > + , T0 + , list18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ + typedef list19 type; +}; + +template< + 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 + > +struct list20 + : list_node< + integral_c< long,20 > + , T0 + , list19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ + typedef list20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list20_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list20_c.hpp new file mode 100644 index 0000000..a58fb26 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list20_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/list/list20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct list11_c + : list_node< + integral_c< long,11 > + , integral_c< T,C0 > + , list10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ + typedef list11_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct list12_c + : list_node< + integral_c< long,12 > + , integral_c< T,C0 > + , list11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ + typedef list12_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct list13_c + : list_node< + integral_c< long,13 > + , integral_c< T,C0 > + , list12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ + typedef list13_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct list14_c + : list_node< + integral_c< long,14 > + , integral_c< T,C0 > + , list13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ + typedef list14_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct list15_c + : list_node< + integral_c< long,15 > + , integral_c< T,C0 > + , list14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ + typedef list15_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct list16_c + : list_node< + integral_c< long,16 > + , integral_c< T,C0 > + , list15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ + typedef list16_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct list17_c + : list_node< + integral_c< long,17 > + , integral_c< T,C0 > + , list16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ + typedef list17_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct list18_c + : list_node< + integral_c< long,18 > + , integral_c< T,C0 > + , list17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ + typedef list18_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct list19_c + : list_node< + integral_c< long,19 > + , integral_c< T,C0 > + , list18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ + typedef list19_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct list20_c + : list_node< + integral_c< long,20 > + , integral_c< T,C0 > + , list19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ + typedef list20_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list30.hpp b/include/boost/mpl/aux_/preprocessed/plain/list30.hpp new file mode 100644 index 0000000..14397e3 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list30.hpp @@ -0,0 +1,184 @@ +// preprocessed version of 'boost/mpl/list/list30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct list21 + : list_node< + integral_c< long,21 > + , T0 + , list20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ + typedef list21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct list22 + : list_node< + integral_c< long,22 > + , T0 + , list21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ + typedef list22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct list23 + : list_node< + integral_c< long,23 > + , T0 + , list22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ + typedef list23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct list24 + : list_node< + integral_c< long,24 > + , T0 + , list23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ + typedef list24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct list25 + : list_node< + integral_c< long,25 > + , T0 + , list24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ + typedef list25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct list26 + : list_node< + integral_c< long,26 > + , T0 + , list25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ + typedef list26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct list27 + : list_node< + integral_c< long,27 > + , T0 + , list26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ + typedef list27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct list28 + : list_node< + integral_c< long,28 > + , T0 + , list27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ + typedef list28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct list29 + : list_node< + integral_c< long,29 > + , T0 + , list28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ + typedef list29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct list30 + : list_node< + integral_c< long,30 > + , T0 + , list29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ + typedef list30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list30_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list30_c.hpp new file mode 100644 index 0000000..4f6515a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list30_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/list/list30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct list21_c + : list_node< + integral_c< long,21 > + , integral_c< T,C0 > + , list20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ + typedef list21_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct list22_c + : list_node< + integral_c< long,22 > + , integral_c< T,C0 > + , list21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ + typedef list22_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct list23_c + : list_node< + integral_c< long,23 > + , integral_c< T,C0 > + , list22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ + typedef list23_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct list24_c + : list_node< + integral_c< long,24 > + , integral_c< T,C0 > + , list23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ + typedef list24_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct list25_c + : list_node< + integral_c< long,25 > + , integral_c< T,C0 > + , list24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ + typedef list25_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct list26_c + : list_node< + integral_c< long,26 > + , integral_c< T,C0 > + , list25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ + typedef list26_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct list27_c + : list_node< + integral_c< long,27 > + , integral_c< T,C0 > + , list26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ + typedef list27_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct list28_c + : list_node< + integral_c< long,28 > + , integral_c< T,C0 > + , list27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ + typedef list28_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct list29_c + : list_node< + integral_c< long,29 > + , integral_c< T,C0 > + , list28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ + typedef list29_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct list30_c + : list_node< + integral_c< long,30 > + , integral_c< T,C0 > + , list29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ + typedef list30_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list40.hpp b/include/boost/mpl/aux_/preprocessed/plain/list40.hpp new file mode 100644 index 0000000..cc877f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list40.hpp @@ -0,0 +1,204 @@ +// preprocessed version of 'boost/mpl/list/list40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct list31 + : list_node< + integral_c< long,31 > + , T0 + , list30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ + typedef list31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct list32 + : list_node< + integral_c< long,32 > + , T0 + , list31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ + typedef list32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct list33 + : list_node< + integral_c< long,33 > + , T0 + , list32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ + typedef list33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct list34 + : list_node< + integral_c< long,34 > + , T0 + , list33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ + typedef list34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct list35 + : list_node< + integral_c< long,35 > + , T0 + , list34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ + typedef list35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct list36 + : list_node< + integral_c< long,36 > + , T0 + , list35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ + typedef list36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct list37 + : list_node< + integral_c< long,37 > + , T0 + , list36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ + typedef list37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct list38 + : list_node< + integral_c< long,38 > + , T0 + , list37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ + typedef list38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct list39 + : list_node< + integral_c< long,39 > + , T0 + , list38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ + typedef list39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct list40 + : list_node< + integral_c< long,40 > + , T0 + , list39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ + typedef list40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list40_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list40_c.hpp new file mode 100644 index 0000000..227418f --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list40_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/list/list40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct list31_c + : list_node< + integral_c< long,31 > + , integral_c< T,C0 > + , list30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ + typedef list31_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct list32_c + : list_node< + integral_c< long,32 > + , integral_c< T,C0 > + , list31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ + typedef list32_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct list33_c + : list_node< + integral_c< long,33 > + , integral_c< T,C0 > + , list32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ + typedef list33_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct list34_c + : list_node< + integral_c< long,34 > + , integral_c< T,C0 > + , list33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ + typedef list34_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct list35_c + : list_node< + integral_c< long,35 > + , integral_c< T,C0 > + , list34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ + typedef list35_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct list36_c + : list_node< + integral_c< long,36 > + , integral_c< T,C0 > + , list35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ + typedef list36_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct list37_c + : list_node< + integral_c< long,37 > + , integral_c< T,C0 > + , list36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ + typedef list37_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct list38_c + : list_node< + integral_c< long,38 > + , integral_c< T,C0 > + , list37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ + typedef list38_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct list39_c + : list_node< + integral_c< long,39 > + , integral_c< T,C0 > + , list38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ + typedef list39_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct list40_c + : list_node< + integral_c< long,40 > + , integral_c< T,C0 > + , list39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ + typedef list40_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list50.hpp b/include/boost/mpl/aux_/preprocessed/plain/list50.hpp new file mode 100644 index 0000000..f7e9a14 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list50.hpp @@ -0,0 +1,224 @@ +// preprocessed version of 'boost/mpl/list/list50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct list41 + : list_node< + integral_c< long,41 > + , T0 + , list40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ + typedef list41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct list42 + : list_node< + integral_c< long,42 > + , T0 + , list41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ + typedef list42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct list43 + : list_node< + integral_c< long,43 > + , T0 + , list42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ + typedef list43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct list44 + : list_node< + integral_c< long,44 > + , T0 + , list43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ + typedef list44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct list45 + : list_node< + integral_c< long,45 > + , T0 + , list44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ + typedef list45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct list46 + : list_node< + integral_c< long,46 > + , T0 + , list45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ + typedef list46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct list47 + : list_node< + integral_c< long,47 > + , T0 + , list46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ + typedef list47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct list48 + : list_node< + integral_c< long,48 > + , T0 + , list47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ + typedef list48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct list49 + : list_node< + integral_c< long,49 > + , T0 + , list48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ + typedef list49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct list50 + : list_node< + integral_c< long,50 > + , T0 + , list49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ + typedef list50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list50_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list50_c.hpp new file mode 100644 index 0000000..cf49530 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list50_c.hpp @@ -0,0 +1,188 @@ +// preprocessed version of 'boost/mpl/list/list50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct list41_c + : list_node< + integral_c< long,41 > + , integral_c< T,C0 > + , list40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ + typedef list41_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct list42_c + : list_node< + integral_c< long,42 > + , integral_c< T,C0 > + , list41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ + typedef list42_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct list43_c + : list_node< + integral_c< long,43 > + , integral_c< T,C0 > + , list42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ + typedef list43_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct list44_c + : list_node< + integral_c< long,44 > + , integral_c< T,C0 > + , list43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ + typedef list44_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct list45_c + : list_node< + integral_c< long,45 > + , integral_c< T,C0 > + , list44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ + typedef list45_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct list46_c + : list_node< + integral_c< long,46 > + , integral_c< T,C0 > + , list45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ + typedef list46_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct list47_c + : list_node< + integral_c< long,47 > + , integral_c< T,C0 > + , list46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ + typedef list47_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct list48_c + : list_node< + integral_c< long,48 > + , integral_c< T,C0 > + , list47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ + typedef list48_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct list49_c + : list_node< + integral_c< long,49 > + , integral_c< T,C0 > + , list48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ + typedef list49_c type; +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct list50_c + : list_node< + integral_c< long,50 > + , integral_c< T,C0 > + , list49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ + typedef list50_c type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/list_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/list_c.hpp new file mode 100644 index 0000000..9f0f872 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/list_c.hpp @@ -0,0 +1,151 @@ +// preprocessed version of 'boost/mpl/list_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct list_c; + +template< + typename T + + > +struct list_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list0_c +{ + typedef typename list0_c::type type; +}; + +template< + typename T + , long C0 + > +struct list_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list1_c< T,C0 > +{ + typedef typename list1_c< T,C0 >::type type; +}; + +template< + typename T + , long C0, long C1 + > +struct list_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : list2_c< T,C0,C1 > +{ + typedef typename list2_c< T,C0,C1 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct list_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : list3_c< T,C0,C1,C2 > +{ + typedef typename list3_c< T,C0,C1,C2 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct list_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list4_c< T,C0,C1,C2,C3 > +{ + typedef typename list4_c< T,C0,C1,C2,C3 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct list_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : list5_c< T,C0,C1,C2,C3,C4 > +{ + typedef typename list5_c< T,C0,C1,C2,C3,C4 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct list_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : list6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef typename list6_c< T,C0,C1,C2,C3,C4,C5 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,LONG_MAX,LONG_MAX,LONG_MAX > + : list7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef typename list7_c< T,C0,C1,C2,C3,C4,C5,C6 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef typename list8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 >::type type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct list_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef typename list9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 >::type type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct list_c + : list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef typename list10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 >::type type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector10.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector10.hpp new file mode 100644 index 0000000..2193850 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector10.hpp @@ -0,0 +1,134 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 + > +struct vector1 + : vector_node< + 1 + , T0 + , vector0< > + > +{ +}; + +template< + typename T0, typename T1 + > +struct vector2 + : vector_node< + 2 + , T0 + , vector1 + > +{ +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 + : vector_node< + 3 + , T0 + , vector2< T1,T2 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 + : vector_node< + 4 + , T0 + , vector3< T1,T2,T3 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 + : vector_node< + 5 + , T0 + , vector4< T1,T2,T3,T4 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 + : vector_node< + 6 + , T0 + , vector5< T1,T2,T3,T4,T5 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 + : vector_node< + 7 + , T0 + , vector6< T1,T2,T3,T4,T5,T6 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 + : vector_node< + 8 + , T0 + , vector7< T1,T2,T3,T4,T5,T6,T7 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 + : vector_node< + 9 + , T0 + , vector8< T1,T2,T3,T4,T5,T6,T7,T8 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 + : vector_node< + 10 + , T0 + , vector9< T1,T2,T3,T4,T5,T6,T7,T8,T9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector10_c.hpp new file mode 100644 index 0000000..cbf03ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector10_c.hpp @@ -0,0 +1,139 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector_node< + 1 + , integral_c< T,C0 > + , vector0_c + > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector_node< + 2 + , integral_c< T,C0 > + , vector1_c< T,C1 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector_node< + 3 + , integral_c< T,C0 > + , vector2_c< T,C1,C2 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector_node< + 4 + , integral_c< T,C0 > + , vector3_c< T,C1,C2,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector_node< + 5 + , integral_c< T,C0 > + , vector4_c< T,C1,C2,C3,C4 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector_node< + 6 + , integral_c< T,C0 > + , vector5_c< T,C1,C2,C3,C4,C5 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector_node< + 7 + , integral_c< T,C0 > + , vector6_c< T,C1,C2,C3,C4,C5,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector_node< + 8 + , integral_c< T,C0 > + , vector7_c< T,C1,C2,C3,C4,C5,C6,C7 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector_node< + 9 + , integral_c< T,C0 > + , vector8_c< T,C1,C2,C3,C4,C5,C6,C7,C8 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector_node< + 10 + , integral_c< T,C0 > + , vector9_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector20.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector20.hpp new file mode 100644 index 0000000..eeec911 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector20.hpp @@ -0,0 +1,154 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 + : vector_node< + 11 + , T0 + , vector10< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10 > + > +{ +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 + : vector_node< + 12 + , T0 + , vector11< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11 > + > +{ +}; + +template< + 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 + > +struct vector13 + : vector_node< + 13 + , T0 + , vector12< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12 > + > +{ +}; + +template< + 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 + > +struct vector14 + : vector_node< + 14 + , T0 + , vector13< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13 > + > +{ +}; + +template< + 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 + > +struct vector15 + : vector_node< + 15 + , T0 + , vector14< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14 > + > +{ +}; + +template< + 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 + > +struct vector16 + : vector_node< + 16 + , T0 + , vector15< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15 > + > +{ +}; + +template< + 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 + > +struct vector17 + : vector_node< + 17 + , T0 + , vector16< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16 > + > +{ +}; + +template< + 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 + > +struct vector18 + : vector_node< + 18 + , T0 + , vector17< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17 > + > +{ +}; + +template< + 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 + > +struct vector19 + : vector_node< + 19 + , T0 + , vector18< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18 > + > +{ +}; + +template< + 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 + > +struct vector20 + : vector_node< + 20 + , T0 + , vector19< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector20_c.hpp new file mode 100644 index 0000000..0821656 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector20_c.hpp @@ -0,0 +1,148 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector_node< + 11 + , integral_c< T,C0 > + , vector10_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector_node< + 12 + , integral_c< T,C0 > + , vector11_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector_node< + 13 + , integral_c< T,C0 > + , vector12_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector_node< + 14 + , integral_c< T,C0 > + , vector13_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector_node< + 15 + , integral_c< T,C0 > + , vector14_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector_node< + 16 + , integral_c< T,C0 > + , vector15_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector_node< + 17 + , integral_c< T,C0 > + , vector16_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector_node< + 18 + , integral_c< T,C0 > + , vector17_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector_node< + 19 + , integral_c< T,C0 > + , vector18_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector_node< + 20 + , integral_c< T,C0 > + , vector19_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector30.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector30.hpp new file mode 100644 index 0000000..a20cd35 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector30.hpp @@ -0,0 +1,174 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 + : vector_node< + 21 + , T0 + , vector20< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20 > + > +{ +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 + : vector_node< + 22 + , T0 + , vector21< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 + : vector_node< + 23 + , T0 + , vector22< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 + : vector_node< + 24 + , T0 + , vector23< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 + : vector_node< + 25 + , T0 + , vector24< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 + : vector_node< + 26 + , T0 + , vector25< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 + : vector_node< + 27 + , T0 + , vector26< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 + : vector_node< + 28 + , T0 + , vector27< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 + : vector_node< + 29 + , T0 + , vector28< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 + : vector_node< + 30 + , T0 + , vector29< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector30_c.hpp new file mode 100644 index 0000000..c92c683 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector30_c.hpp @@ -0,0 +1,158 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector_node< + 21 + , integral_c< T,C0 > + , vector20_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector_node< + 22 + , integral_c< T,C0 > + , vector21_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector_node< + 23 + , integral_c< T,C0 > + , vector22_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector_node< + 24 + , integral_c< T,C0 > + , vector23_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector_node< + 25 + , integral_c< T,C0 > + , vector24_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector_node< + 26 + , integral_c< T,C0 > + , vector25_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector_node< + 27 + , integral_c< T,C0 > + , vector26_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector_node< + 28 + , integral_c< T,C0 > + , vector27_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector_node< + 29 + , integral_c< T,C0 > + , vector28_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector_node< + 30 + , integral_c< T,C0 > + , vector29_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector40.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector40.hpp new file mode 100644 index 0000000..bfeb5be --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector40.hpp @@ -0,0 +1,194 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 + : vector_node< + 31 + , T0 + , vector30< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 + : vector_node< + 32 + , T0 + , vector31< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 + : vector_node< + 33 + , T0 + , vector32< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 + : vector_node< + 34 + , T0 + , vector33< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 + : vector_node< + 35 + , T0 + , vector34< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 + : vector_node< + 36 + , T0 + , vector35< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 + : vector_node< + 37 + , T0 + , vector36< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 + : vector_node< + 38 + , T0 + , vector37< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 + : vector_node< + 39 + , T0 + , vector38< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 + : vector_node< + 40 + , T0 + , vector39< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector40_c.hpp new file mode 100644 index 0000000..b745761 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector40_c.hpp @@ -0,0 +1,168 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector_node< + 31 + , integral_c< T,C0 > + , vector30_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector_node< + 32 + , integral_c< T,C0 > + , vector31_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector_node< + 33 + , integral_c< T,C0 > + , vector32_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector_node< + 34 + , integral_c< T,C0 > + , vector33_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector_node< + 35 + , integral_c< T,C0 > + , vector34_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector_node< + 36 + , integral_c< T,C0 > + , vector35_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector_node< + 37 + , integral_c< T,C0 > + , vector36_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector_node< + 38 + , integral_c< T,C0 > + , vector37_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector_node< + 39 + , integral_c< T,C0 > + , vector38_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector_node< + 40 + , integral_c< T,C0 > + , vector39_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector50.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector50.hpp new file mode 100644 index 0000000..b3590e2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector50.hpp @@ -0,0 +1,214 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 + : vector_node< + 41 + , T0 + , vector40< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 + : vector_node< + 42 + , T0 + , vector41< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 + : vector_node< + 43 + , T0 + , vector42< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 + : vector_node< + 44 + , T0 + , vector43< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 + : vector_node< + 45 + , T0 + , vector44< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 + : vector_node< + 46 + , T0 + , vector45< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 + : vector_node< + 47 + , T0 + , vector46< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 + : vector_node< + 48 + , T0 + , vector47< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 + : vector_node< + 49 + , T0 + , vector48< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48 > + > +{ +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 + : vector_node< + 50 + , T0 + , vector49< T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/lite_vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/lite_vector50_c.hpp new file mode 100644 index 0000000..67294f0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/lite_vector50_c.hpp @@ -0,0 +1,178 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector_node< + 41 + , integral_c< T,C0 > + , vector40_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector_node< + 42 + , integral_c< T,C0 > + , vector41_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector_node< + 43 + , integral_c< T,C0 > + , vector42_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector_node< + 44 + , integral_c< T,C0 > + , vector43_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector_node< + 45 + , integral_c< T,C0 > + , vector44_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector_node< + 46 + , integral_c< T,C0 > + , vector45_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector_node< + 47 + , integral_c< T,C0 > + , vector46_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector_node< + 48 + , integral_c< T,C0 > + , vector47_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector_node< + 49 + , integral_c< T,C0 > + , vector48_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector_node< + 50 + , integral_c< T,C0 > + , vector49_c< T,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21,C22,C23,C24,C25,C26,C27,C28,C29,C30,C31,C32,C33,C34,C35,C36,C37,C38,C39,C40,C41,C42,C43,C44,C45,C46,C47,C48,C49 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/meta_fun.hpp b/include/boost/mpl/aux_/preprocessed/plain/meta_fun.hpp new file mode 100644 index 0000000..befe244 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/meta_fun.hpp @@ -0,0 +1,75 @@ +// preprocessed version of 'boost/mpl/meta_fun.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + template< typename P1 > class F + > +struct meta_fun1 +{ + template< typename U1 > struct apply + : F + { + }; +}; + +template< + template< typename P1, typename P2 > class F + > +struct meta_fun2 +{ + template< typename U1, typename U2 > struct apply + : F< U1,U2 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3 > class F + > +struct meta_fun3 +{ + template< typename U1, typename U2, typename U3 > struct apply + : F< U1,U2,U3 > + { + }; +}; + +template< + template< typename P1, typename P2, typename P3, typename P4 > class F + > +struct meta_fun4 +{ + template< + typename U1, typename U2, typename U3, typename U4 + > + struct apply + : F< U1,U2,U3,U4 > + { + }; +}; + +template< + template< + typename P1, typename P2, typename P3, typename P4 + , typename P5 + > + class F + > +struct meta_fun5 +{ + template< + typename U1, typename U2, typename U3, typename U4 + , typename U5 + > + struct apply + : F< U1,U2,U3,U4,U5 > + { + }; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/placeholder.hpp b/include/boost/mpl/aux_/preprocessed/plain/placeholder.hpp new file mode 100644 index 0000000..11883d8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/placeholder.hpp @@ -0,0 +1,57 @@ +// preprocessed version of 'boost/mpl/placeholder.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +typedef arg< -1 > _; + +namespace placeholder { +using boost::mpl::_; +} + +// agurt, 17/mar/02: one more placeholder for the last 'apply#' +// specialization + +typedef arg<1> _1; + +namespace placeholder { +using boost::mpl::_1; +} + +typedef arg<2> _2; + +namespace placeholder { +using boost::mpl::_2; +} + +typedef arg<3> _3; + +namespace placeholder { +using boost::mpl::_3; +} + +typedef arg<4> _4; + +namespace placeholder { +using boost::mpl::_4; +} + +typedef arg<5> _5; + +namespace placeholder { +using boost::mpl::_5; +} + +typedef arg<6> _6; + +namespace placeholder { +using boost::mpl::_6; +} + +} // namespace mpl +} // namespace boost + +// injecting the unnumbered placeholder into global namespace +// using boost::mpl::_; + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector.hpp new file mode 100644 index 0000000..35aaadf --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector.hpp @@ -0,0 +1,129 @@ +// preprocessed version of 'boost/mpl/vector.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0 = void_, typename T1 = void_, typename T2 = void_ + , typename T3 = void_, typename T4 = void_, typename T5 = void_ + , typename T6 = void_, typename T7 = void_, typename T8 = void_ + , typename T9 = void_ + > +struct vector; + +template< + + > +struct vector< + void_, void_, void_, void_, void_, void_, void_, void_, void_ + , void_ + > + : vector0< > +{ + typedef vector0< > type; +}; + +template< + typename T0 + > +struct vector< + T0, void_, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector1 +{ + typedef vector1 type; +}; + +template< + typename T0, typename T1 + > +struct vector< + T0, T1, void_, void_, void_, void_, void_, void_, void_, void_ + > + : vector2< T0,T1 > +{ + typedef vector2< T0,T1 > type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector< T0,T1,T2,void_,void_,void_,void_,void_,void_,void_ > + : vector3< T0,T1,T2 > +{ + typedef vector3< T0,T1,T2 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector< T0,T1,T2,T3,void_,void_,void_,void_,void_,void_ > + : vector4< T0,T1,T2,T3 > +{ + typedef vector4< T0,T1,T2,T3 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector< T0,T1,T2,T3,T4,void_,void_,void_,void_,void_ > + : vector5< T0,T1,T2,T3,T4 > +{ + typedef vector5< T0,T1,T2,T3,T4 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector< T0,T1,T2,T3,T4,T5,void_,void_,void_,void_ > + : vector6< T0,T1,T2,T3,T4,T5 > +{ + typedef vector6< T0,T1,T2,T3,T4,T5 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,void_,void_,void_ > + : vector7< T0,T1,T2,T3,T4,T5,T6 > +{ + typedef vector7< T0,T1,T2,T3,T4,T5,T6 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,void_,void_ > + : vector8< T0,T1,T2,T3,T4,T5,T6,T7 > +{ + typedef vector8< T0,T1,T2,T3,T4,T5,T6,T7 > type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector< T0,T1,T2,T3,T4,T5,T6,T7,T8,void_ > + : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > +{ + typedef vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > type; +}; + +// primary template (not a specialization!) +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector + : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > +{ + typedef vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector10.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector10.hpp new file mode 100644 index 0000000..5ee41f2 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector10.hpp @@ -0,0 +1,553 @@ +// preprocessed version of 'boost/mpl/vector/vector10.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< typename V > +struct vector_item< V,0 > +{ + typedef typename V::item0 type; +}; + +template< + typename T0 + > +struct vector1 +{ + typedef aux::vector_tag<1> tag; + typedef vector1 type; + typedef T0 item0; + typedef void_ item1; + typedef T0 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 0> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector1< + T + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector > struct algorithm + { + typedef vector0< + + > type; + }; +}; + +template< typename V > +struct vector_item< V,1 > +{ + typedef typename V::item1 type; +}; + +template< + typename T0, typename T1 + > +struct vector2 +{ + typedef aux::vector_tag<2> tag; + typedef vector2 type; + typedef T0 item0; + typedef T1 item1; + + + typedef void_ item2; + typedef T1 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 1> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector2< + T + , + typename Vector::item0 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector > struct algorithm + { + typedef vector1< + typename Vector::item1 + > type; + }; +}; + +template< typename V > +struct vector_item< V,2 > +{ + typedef typename V::item2 type; +}; + +template< + typename T0, typename T1, typename T2 + > +struct vector3 +{ + typedef aux::vector_tag<3> tag; + typedef vector3 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + + + typedef void_ item3; + typedef T2 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 2> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector3< + T + , + typename Vector::item0, typename Vector::item1 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector > struct algorithm + { + typedef vector2< + typename Vector::item1, typename Vector::item2 + > type; + }; +}; + +template< typename V > +struct vector_item< V,3 > +{ + typedef typename V::item3 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3 + > +struct vector4 +{ + typedef aux::vector_tag<4> tag; + typedef vector4 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + + + typedef void_ item4; + typedef T3 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 3> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector4< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector > struct algorithm + { + typedef vector3< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3 + > type; + }; +}; + +template< typename V > +struct vector_item< V,4 > +{ + typedef typename V::item4 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + > +struct vector5 +{ + typedef aux::vector_tag<5> tag; + typedef vector5 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + + + typedef void_ item5; + typedef T4 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 4> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector5< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector > struct algorithm + { + typedef vector4< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + > type; + }; +}; + +template< typename V > +struct vector_item< V,5 > +{ + typedef typename V::item5 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5 + > +struct vector6 +{ + typedef aux::vector_tag<6> tag; + typedef vector6 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + + + typedef void_ item6; + typedef T5 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 5> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector6< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector > struct algorithm + { + typedef vector5< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5 + > type; + }; +}; + +template< typename V > +struct vector_item< V,6 > +{ + typedef typename V::item6 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6 + > +struct vector7 +{ + typedef aux::vector_tag<7> tag; + typedef vector7 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + + + typedef void_ item7; + typedef T6 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 6> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector7< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector > struct algorithm + { + typedef vector6< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + > type; + }; +}; + +template< typename V > +struct vector_item< V,7 > +{ + typedef typename V::item7 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7 + > +struct vector8 +{ + typedef aux::vector_tag<8> tag; + typedef vector8 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + + + typedef void_ item8; + typedef T7 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 7> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector8< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector > struct algorithm + { + typedef vector7< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7 + > type; + }; +}; + +template< typename V > +struct vector_item< V,8 > +{ + typedef typename V::item8 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8 + > +struct vector9 +{ + typedef aux::vector_tag<9> tag; + typedef vector9 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + + + typedef void_ item9; + typedef T8 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 8> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector9< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector > struct algorithm + { + typedef vector8< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + > type; + }; +}; + +template< typename V > +struct vector_item< V,9 > +{ + typedef typename V::item9 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + > +struct vector10 +{ + typedef aux::vector_tag<10> tag; + typedef vector10 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + + + typedef void_ item10; + typedef T9 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 9> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector10< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector > struct algorithm + { + typedef vector9< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9 + > type; + }; +}; + +template< typename V > +struct vector_item< V,10 > +{ + typedef typename V::item10 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector10_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector10_c.hpp new file mode 100644 index 0000000..e6c1f43 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector10_c.hpp @@ -0,0 +1,125 @@ +// preprocessed version of 'boost/mpl/vector/vector10_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0 + > +struct vector1_c + : vector1< integral_c > +{ +}; + +template< + typename T + , T C0, T C1 + > +struct vector2_c + : vector2< integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2 + > +struct vector3_c + : vector3< integral_c,integral_c,integral_c > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3 + > +struct vector4_c + : vector4< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4 + > +struct vector5_c + : vector5< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5 + > +struct vector6_c + : vector6< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6 + > +struct vector7_c + : vector7< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7 + > +struct vector8_c + : vector8< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8 + > +struct vector9_c + : vector9< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9 + > +struct vector10_c + : vector10< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector20.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector20.hpp new file mode 100644 index 0000000..17a6e78 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector20.hpp @@ -0,0 +1,769 @@ +// preprocessed version of 'boost/mpl/vector/vector20.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10 + > +struct vector11 +{ + typedef aux::vector_tag<11> tag; + typedef vector11 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + + + typedef void_ item11; + typedef T10 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 10> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector11< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector > struct algorithm + { + typedef vector10< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + > type; + }; +}; + +template< typename V > +struct vector_item< V,11 > +{ + typedef typename V::item11 type; +}; + +template< + typename T0, typename T1, typename T2, typename T3, typename T4 + , typename T5, typename T6, typename T7, typename T8, typename T9 + , typename T10, typename T11 + > +struct vector12 +{ + typedef aux::vector_tag<12> tag; + typedef vector12 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + + + typedef void_ item12; + typedef T11 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 11> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector12< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector > struct algorithm + { + typedef vector11< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11 + > type; + }; +}; + +template< typename V > +struct vector_item< V,12 > +{ + typedef typename V::item12 type; +}; + +template< + 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 + > +struct vector13 +{ + typedef aux::vector_tag<13> tag; + typedef vector13 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + + + typedef void_ item13; + typedef T12 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 12> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector13< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector > struct algorithm + { + typedef vector12< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + > type; + }; +}; + +template< typename V > +struct vector_item< V,13 > +{ + typedef typename V::item13 type; +}; + +template< + 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 + > +struct vector14 +{ + typedef aux::vector_tag<14> tag; + typedef vector14 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + + + typedef void_ item14; + typedef T13 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 13> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector14< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector > struct algorithm + { + typedef vector13< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13 + > type; + }; +}; + +template< typename V > +struct vector_item< V,14 > +{ + typedef typename V::item14 type; +}; + +template< + 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 + > +struct vector15 +{ + typedef aux::vector_tag<15> tag; + typedef vector15 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + + + typedef void_ item15; + typedef T14 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 14> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector15< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector > struct algorithm + { + typedef vector14< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + > type; + }; +}; + +template< typename V > +struct vector_item< V,15 > +{ + typedef typename V::item15 type; +}; + +template< + 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 + > +struct vector16 +{ + typedef aux::vector_tag<16> tag; + typedef vector16 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + + + typedef void_ item16; + typedef T15 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 15> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector16< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector > struct algorithm + { + typedef vector15< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15 + > type; + }; +}; + +template< typename V > +struct vector_item< V,16 > +{ + typedef typename V::item16 type; +}; + +template< + 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 + > +struct vector17 +{ + typedef aux::vector_tag<17> tag; + typedef vector17 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + + + typedef void_ item17; + typedef T16 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 16> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector17< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector > struct algorithm + { + typedef vector16< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + > type; + }; +}; + +template< typename V > +struct vector_item< V,17 > +{ + typedef typename V::item17 type; +}; + +template< + 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 + > +struct vector18 +{ + typedef aux::vector_tag<18> tag; + typedef vector18 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + + + typedef void_ item18; + typedef T17 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 17> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector18< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector > struct algorithm + { + typedef vector17< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17 + > type; + }; +}; + +template< typename V > +struct vector_item< V,18 > +{ + typedef typename V::item18 type; +}; + +template< + 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 + > +struct vector19 +{ + typedef aux::vector_tag<19> tag; + typedef vector19 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + + + typedef void_ item19; + typedef T18 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 18> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector19< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector > struct algorithm + { + typedef vector18< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + > type; + }; +}; + +template< typename V > +struct vector_item< V,19 > +{ + typedef typename V::item19 type; +}; + +template< + 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 + > +struct vector20 +{ + typedef aux::vector_tag<20> tag; + typedef vector20 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + + + typedef void_ item20; + typedef T19 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 19> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector20< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector > struct algorithm + { + typedef vector19< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19 + > type; + }; +}; + +template< typename V > +struct vector_item< V,20 > +{ + typedef typename V::item20 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector20_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector20_c.hpp new file mode 100644 index 0000000..20b2b94 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector20_c.hpp @@ -0,0 +1,173 @@ +// preprocessed version of 'boost/mpl/vector/vector20_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + > +struct vector11_c + : vector11< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11 + > +struct vector12_c + : vector12< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12 + > +struct vector13_c + : vector13< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13 + > +struct vector14_c + : vector14< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14 + > +struct vector15_c + : vector15< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15 + > +struct vector16_c + : vector16< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16 + > +struct vector17_c + : vector17< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17 + > +struct vector18_c + : vector18< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18 + > +struct vector19_c + : vector19< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19 + > +struct vector20_c + : vector20< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector30.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector30.hpp new file mode 100644 index 0000000..5bc85c7 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector30.hpp @@ -0,0 +1,989 @@ +// preprocessed version of 'boost/mpl/vector/vector30.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20 + > +struct vector21 +{ + typedef aux::vector_tag<21> tag; + typedef vector21 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + + + typedef void_ item21; + typedef T20 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 20> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector21< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector > struct algorithm + { + typedef vector20< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + > type; + }; +}; + +template< typename V > +struct vector_item< V,21 > +{ + typedef typename V::item21 type; +}; + +template< + 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 + , typename T20, typename T21 + > +struct vector22 +{ + typedef aux::vector_tag<22> tag; + typedef vector22 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + + + typedef void_ item22; + typedef T21 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 21> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector22< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector > struct algorithm + { + typedef vector21< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21 + > type; + }; +}; + +template< typename V > +struct vector_item< V,22 > +{ + typedef typename V::item22 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22 + > +struct vector23 +{ + typedef aux::vector_tag<23> tag; + typedef vector23 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + + + typedef void_ item23; + typedef T22 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 22> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector23< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector > struct algorithm + { + typedef vector22< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + > type; + }; +}; + +template< typename V > +struct vector_item< V,23 > +{ + typedef typename V::item23 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23 + > +struct vector24 +{ + typedef aux::vector_tag<24> tag; + typedef vector24 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + + + typedef void_ item24; + typedef T23 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 23> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector24< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector > struct algorithm + { + typedef vector23< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23 + > type; + }; +}; + +template< typename V > +struct vector_item< V,24 > +{ + typedef typename V::item24 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + > +struct vector25 +{ + typedef aux::vector_tag<25> tag; + typedef vector25 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + + + typedef void_ item25; + typedef T24 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 24> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector25< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector > struct algorithm + { + typedef vector24< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + > type; + }; +}; + +template< typename V > +struct vector_item< V,25 > +{ + typedef typename V::item25 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25 + > +struct vector26 +{ + typedef aux::vector_tag<26> tag; + typedef vector26 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + + + typedef void_ item26; + typedef T25 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 25> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector26< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector > struct algorithm + { + typedef vector25< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25 + > type; + }; +}; + +template< typename V > +struct vector_item< V,26 > +{ + typedef typename V::item26 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26 + > +struct vector27 +{ + typedef aux::vector_tag<27> tag; + typedef vector27 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + + + typedef void_ item27; + typedef T26 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 26> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector27< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector > struct algorithm + { + typedef vector26< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + > type; + }; +}; + +template< typename V > +struct vector_item< V,27 > +{ + typedef typename V::item27 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27 + > +struct vector28 +{ + typedef aux::vector_tag<28> tag; + typedef vector28 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + + + typedef void_ item28; + typedef T27 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 27> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector28< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector > struct algorithm + { + typedef vector27< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27 + > type; + }; +}; + +template< typename V > +struct vector_item< V,28 > +{ + typedef typename V::item28 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28 + > +struct vector29 +{ + typedef aux::vector_tag<29> tag; + typedef vector29 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + + + typedef void_ item29; + typedef T28 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 28> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector29< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector > struct algorithm + { + typedef vector28< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + > type; + }; +}; + +template< typename V > +struct vector_item< V,29 > +{ + typedef typename V::item29 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + > +struct vector30 +{ + typedef aux::vector_tag<30> tag; + typedef vector30 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + + + typedef void_ item30; + typedef T29 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 29> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector30< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector > struct algorithm + { + typedef vector29< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29 + > type; + }; +}; + +template< typename V > +struct vector_item< V,30 > +{ + typedef typename V::item30 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector30_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector30_c.hpp new file mode 100644 index 0000000..77ed91c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector30_c.hpp @@ -0,0 +1,216 @@ +// preprocessed version of 'boost/mpl/vector/vector30_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + > +struct vector21_c + : vector21< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21 + > +struct vector22_c + : vector22< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22 + > +struct vector23_c + : vector23< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23 + > +struct vector24_c + : vector24< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24 + > +struct vector25_c + : vector25< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25 + > +struct vector26_c + : vector26< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26 + > +struct vector27_c + : vector27< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27 + > +struct vector28_c + : vector28< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28 + > +struct vector29_c + : vector29< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29 + > +struct vector30_c + : vector30< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector40.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector40.hpp new file mode 100644 index 0000000..0342b82 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector40.hpp @@ -0,0 +1,1209 @@ +// preprocessed version of 'boost/mpl/vector/vector40.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30 + > +struct vector31 +{ + typedef aux::vector_tag<31> tag; + typedef vector31 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + + + typedef void_ item31; + typedef T30 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 30> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector31< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector > struct algorithm + { + typedef vector30< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + > type; + }; +}; + +template< typename V > +struct vector_item< V,31 > +{ + typedef typename V::item31 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31 + > +struct vector32 +{ + typedef aux::vector_tag<32> tag; + typedef vector32 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + + + typedef void_ item32; + typedef T31 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 31> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector32< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector > struct algorithm + { + typedef vector31< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31 + > type; + }; +}; + +template< typename V > +struct vector_item< V,32 > +{ + typedef typename V::item32 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32 + > +struct vector33 +{ + typedef aux::vector_tag<33> tag; + typedef vector33 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + + + typedef void_ item33; + typedef T32 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 32> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector33< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector > struct algorithm + { + typedef vector32< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + > type; + }; +}; + +template< typename V > +struct vector_item< V,33 > +{ + typedef typename V::item33 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33 + > +struct vector34 +{ + typedef aux::vector_tag<34> tag; + typedef vector34 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + + + typedef void_ item34; + typedef T33 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 33> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector34< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector > struct algorithm + { + typedef vector33< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33 + > type; + }; +}; + +template< typename V > +struct vector_item< V,34 > +{ + typedef typename V::item34 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + > +struct vector35 +{ + typedef aux::vector_tag<35> tag; + typedef vector35 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + + + typedef void_ item35; + typedef T34 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 34> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector35< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector > struct algorithm + { + typedef vector34< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + > type; + }; +}; + +template< typename V > +struct vector_item< V,35 > +{ + typedef typename V::item35 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35 + > +struct vector36 +{ + typedef aux::vector_tag<36> tag; + typedef vector36 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + + + typedef void_ item36; + typedef T35 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 35> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector36< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector > struct algorithm + { + typedef vector35< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35 + > type; + }; +}; + +template< typename V > +struct vector_item< V,36 > +{ + typedef typename V::item36 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36 + > +struct vector37 +{ + typedef aux::vector_tag<37> tag; + typedef vector37 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + + + typedef void_ item37; + typedef T36 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 36> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector37< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector > struct algorithm + { + typedef vector36< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + > type; + }; +}; + +template< typename V > +struct vector_item< V,37 > +{ + typedef typename V::item37 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37 + > +struct vector38 +{ + typedef aux::vector_tag<38> tag; + typedef vector38 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + + + typedef void_ item38; + typedef T37 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 37> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector38< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector > struct algorithm + { + typedef vector37< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37 + > type; + }; +}; + +template< typename V > +struct vector_item< V,38 > +{ + typedef typename V::item38 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38 + > +struct vector39 +{ + typedef aux::vector_tag<39> tag; + typedef vector39 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + + + typedef void_ item39; + typedef T38 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 38> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector39< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector > struct algorithm + { + typedef vector38< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + > type; + }; +}; + +template< typename V > +struct vector_item< V,39 > +{ + typedef typename V::item39 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + > +struct vector40 +{ + typedef aux::vector_tag<40> tag; + typedef vector40 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + + + typedef void_ item40; + typedef T39 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 39> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector40< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector > struct algorithm + { + typedef vector39< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39 + > type; + }; +}; + +template< typename V > +struct vector_item< V,40 > +{ + typedef typename V::item40 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector40_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector40_c.hpp new file mode 100644 index 0000000..15e1960 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector40_c.hpp @@ -0,0 +1,260 @@ +// preprocessed version of 'boost/mpl/vector/vector40_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + > +struct vector31_c + : vector31< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31 + > +struct vector32_c + : vector32< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32 + > +struct vector33_c + : vector33< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33 + > +struct vector34_c + : vector34< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34 + > +struct vector35_c + : vector35< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35 + > +struct vector36_c + : vector36< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36 + > +struct vector37_c + : vector37< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37 + > +struct vector38_c + : vector38< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38 + > +struct vector39_c + : vector39< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39 + > +struct vector40_c + : vector40< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39 > + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector50.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector50.hpp new file mode 100644 index 0000000..ed4e92c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector50.hpp @@ -0,0 +1,1429 @@ +// preprocessed version of 'boost/mpl/vector/vector50.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40 + > +struct vector41 +{ + typedef aux::vector_tag<41> tag; + typedef vector41 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + + + typedef void_ item41; + typedef T40 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 40> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector41< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector > struct algorithm + { + typedef vector40< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + > type; + }; +}; + +template< typename V > +struct vector_item< V,41 > +{ + typedef typename V::item41 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41 + > +struct vector42 +{ + typedef aux::vector_tag<42> tag; + typedef vector42 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + + + typedef void_ item42; + typedef T41 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 41> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector42< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector > struct algorithm + { + typedef vector41< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41 + > type; + }; +}; + +template< typename V > +struct vector_item< V,42 > +{ + typedef typename V::item42 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42 + > +struct vector43 +{ + typedef aux::vector_tag<43> tag; + typedef vector43 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + + + typedef void_ item43; + typedef T42 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 42> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector43< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector > struct algorithm + { + typedef vector42< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + > type; + }; +}; + +template< typename V > +struct vector_item< V,43 > +{ + typedef typename V::item43 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43 + > +struct vector44 +{ + typedef aux::vector_tag<44> tag; + typedef vector44 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + + + typedef void_ item44; + typedef T43 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 43> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector44< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector > struct algorithm + { + typedef vector43< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43 + > type; + }; +}; + +template< typename V > +struct vector_item< V,44 > +{ + typedef typename V::item44 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + > +struct vector45 +{ + typedef aux::vector_tag<45> tag; + typedef vector45 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + + + typedef void_ item45; + typedef T44 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 44> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector45< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector > struct algorithm + { + typedef vector44< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + > type; + }; +}; + +template< typename V > +struct vector_item< V,45 > +{ + typedef typename V::item45 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45 + > +struct vector46 +{ + typedef aux::vector_tag<46> tag; + typedef vector46 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + + + typedef void_ item46; + typedef T45 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 45> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector46< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector > struct algorithm + { + typedef vector45< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45 + > type; + }; +}; + +template< typename V > +struct vector_item< V,46 > +{ + typedef typename V::item46 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46 + > +struct vector47 +{ + typedef aux::vector_tag<47> tag; + typedef vector47 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + + + typedef void_ item47; + typedef T46 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 46> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector47< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector > struct algorithm + { + typedef vector46< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + > type; + }; +}; + +template< typename V > +struct vector_item< V,47 > +{ + typedef typename V::item47 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47 + > +struct vector48 +{ + typedef aux::vector_tag<48> tag; + typedef vector48 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + + + typedef void_ item48; + typedef T47 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 47> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector48< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector > struct algorithm + { + typedef vector47< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47 + > type; + }; +}; + +template< typename V > +struct vector_item< V,48 > +{ + typedef typename V::item48 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48 + > +struct vector49 +{ + typedef aux::vector_tag<49> tag; + typedef vector49 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + + + typedef void_ item49; + typedef T48 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 48> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector49< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector > struct algorithm + { + typedef vector48< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + > type; + }; +}; + +template< typename V > +struct vector_item< V,49 > +{ + typedef typename V::item49 type; +}; + +template< + 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 + , typename T20, typename T21, typename T22, typename T23, typename T24 + , typename T25, typename T26, typename T27, typename T28, typename T29 + , typename T30, typename T31, typename T32, typename T33, typename T34 + , typename T35, typename T36, typename T37, typename T38, typename T39 + , typename T40, typename T41, typename T42, typename T43, typename T44 + , typename T45, typename T46, typename T47, typename T48, typename T49 + > +struct vector50 +{ + typedef aux::vector_tag<50> tag; + typedef vector50 type; + typedef T0 item0; + typedef T1 item1; + typedef T2 item2; + typedef T3 item3; + typedef T4 item4; + typedef T5 item5; + typedef T6 item6; + typedef T7 item7; + typedef T8 item8; + typedef T9 item9; + typedef T10 item10; + typedef T11 item11; + typedef T12 item12; + typedef T13 item13; + typedef T14 item14; + typedef T15 item15; + typedef T16 item16; + typedef T17 item17; + typedef T18 item18; + typedef T19 item19; + typedef T20 item20; + typedef T21 item21; + typedef T22 item22; + typedef T23 item23; + typedef T24 item24; + typedef T25 item25; + typedef T26 item26; + typedef T27 item27; + typedef T28 item28; + typedef T29 item29; + typedef T30 item30; + typedef T31 item31; + typedef T32 item32; + typedef T33 item33; + typedef T34 item34; + typedef T35 item35; + typedef T36 item36; + typedef T37 item37; + typedef T38 item38; + typedef T39 item39; + typedef T40 item40; + typedef T41 item41; + typedef T42 item42; + typedef T43 item43; + typedef T44 item44; + typedef T45 item45; + typedef T46 item46; + typedef T47 item47; + typedef T48 item48; + typedef T49 item49; + + + typedef void_ item50; + typedef T49 back; + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag< 49> > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector50< + T + , + typename Vector::item0, typename Vector::item1 + , typename Vector::item2, typename Vector::item3 + , typename Vector::item4, typename Vector::item5 + , typename Vector::item6, typename Vector::item7 + , typename Vector::item8, typename Vector::item9 + , typename Vector::item10, typename Vector::item11 + , typename Vector::item12, typename Vector::item13 + , typename Vector::item14, typename Vector::item15 + , typename Vector::item16, typename Vector::item17 + , typename Vector::item18, typename Vector::item19 + , typename Vector::item20, typename Vector::item21 + , typename Vector::item22, typename Vector::item23 + , typename Vector::item24, typename Vector::item25 + , typename Vector::item26, typename Vector::item27 + , typename Vector::item28, typename Vector::item29 + , typename Vector::item30, typename Vector::item31 + , typename Vector::item32, typename Vector::item33 + , typename Vector::item34, typename Vector::item35 + , typename Vector::item36, typename Vector::item37 + , typename Vector::item38, typename Vector::item39 + , typename Vector::item40, typename Vector::item41 + , typename Vector::item42, typename Vector::item43 + , typename Vector::item44, typename Vector::item45 + , typename Vector::item46, typename Vector::item47 + , typename Vector::item48 + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag< 50> > +{ + template< typename Vector > struct algorithm + { + typedef vector49< + typename Vector::item1, typename Vector::item2 + , typename Vector::item3, typename Vector::item4 + , typename Vector::item5, typename Vector::item6 + , typename Vector::item7, typename Vector::item8 + , typename Vector::item9, typename Vector::item10 + , typename Vector::item11, typename Vector::item12 + , typename Vector::item13, typename Vector::item14 + , typename Vector::item15, typename Vector::item16 + , typename Vector::item17, typename Vector::item18 + , typename Vector::item19, typename Vector::item20 + , typename Vector::item21, typename Vector::item22 + , typename Vector::item23, typename Vector::item24 + , typename Vector::item25, typename Vector::item26 + , typename Vector::item27, typename Vector::item28 + , typename Vector::item29, typename Vector::item30 + , typename Vector::item31, typename Vector::item32 + , typename Vector::item33, typename Vector::item34 + , typename Vector::item35, typename Vector::item36 + , typename Vector::item37, typename Vector::item38 + , typename Vector::item39, typename Vector::item40 + , typename Vector::item41, typename Vector::item42 + , typename Vector::item43, typename Vector::item44 + , typename Vector::item45, typename Vector::item46 + , typename Vector::item47, typename Vector::item48 + , typename Vector::item49 + > type; + }; +}; + +template< typename V > +struct vector_item< V,50 > +{ + typedef typename V::item50 type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector50_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector50_c.hpp new file mode 100644 index 0000000..b15c384 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector50_c.hpp @@ -0,0 +1,303 @@ +// preprocessed version of 'boost/mpl/vector/vector50_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + > +struct vector41_c + : vector41< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41 + > +struct vector42_c + : vector42< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42 + > +struct vector43_c + : vector43< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43 + > +struct vector44_c + : vector44< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44 + > +struct vector45_c + : vector45< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45 + > +struct vector46_c + : vector46< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46 + > +struct vector47_c + : vector47< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47 + > +struct vector48_c + : vector48< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48 + > +struct vector49_c + : vector49< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48 > + > +{ +}; + +template< + typename T + , T C0, T C1, T C2, T C3, T C4, T C5, T C6, T C7, T C8, T C9, T C10 + , T C11, T C12, T C13, T C14, T C15, T C16, T C17, T C18, T C19, T C20 + , T C21, T C22, T C23, T C24, T C25, T C26, T C27, T C28, T C29, T C30 + , T C31, T C32, T C33, T C34, T C35, T C36, T C37, T C38, T C39, T C40 + , T C41, T C42, T C43, T C44, T C45, T C46, T C47, T C48, T C49 + > +struct vector50_c + : vector50< + integral_c< T,C0>,integral_c,integral_c + ,integral_c< T,C3>,integral_c,integral_c + ,integral_c< T,C6>,integral_c,integral_c + ,integral_c< T,C9>,integral_c,integral_c + ,integral_c< T,C12>,integral_c,integral_c + ,integral_c< T,C15>,integral_c,integral_c + ,integral_c< T,C18>,integral_c,integral_c + ,integral_c< T,C21>,integral_c,integral_c + ,integral_c< T,C24>,integral_c,integral_c + ,integral_c< T,C27>,integral_c,integral_c + ,integral_c< T,C30>,integral_c,integral_c + ,integral_c< T,C33>,integral_c,integral_c + ,integral_c< T,C36>,integral_c,integral_c + ,integral_c< T,C39>,integral_c,integral_c + ,integral_c< T,C42>,integral_c,integral_c + ,integral_c< T,C45>,integral_c,integral_c + ,integral_c< T,C48>,integral_c + > +{ +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessed/plain/vector_c.hpp b/include/boost/mpl/aux_/preprocessed/plain/vector_c.hpp new file mode 100644 index 0000000..ff6be1a --- /dev/null +++ b/include/boost/mpl/aux_/preprocessed/plain/vector_c.hpp @@ -0,0 +1,153 @@ +// preprocessed version of 'boost/mpl/vector_c.hpp' header +// see the original for copyright information + +namespace boost { +namespace mpl { + +template< + typename T + , long C0 = LONG_MAX, long C1 = LONG_MAX, long C2 = LONG_MAX + , long C3 = LONG_MAX, long C4 = LONG_MAX, long C5 = LONG_MAX + , long C6 = LONG_MAX, long C7 = LONG_MAX, long C8 = LONG_MAX + , long C9 = LONG_MAX + > +struct vector_c; + +template< + typename T + + > +struct vector_c< + T, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector0_c +{ + typedef vector0_c type; +}; + +template< + typename T + , long C0 + > +struct vector_c< + T, C0, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector1_c< T,C0 > +{ + typedef vector1_c< T,C0 > type; +}; + +template< + typename T + , long C0, long C1 + > +struct vector_c< + T, C0, C1, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX, LONG_MAX + > + : vector2_c< T,C0,C1 > +{ + typedef vector2_c< T,C0,C1 > type; +}; + +template< + typename T + , long C0, long C1, long C2 + > +struct vector_c< + T, C0, C1, C2, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX, LONG_MAX + > + : vector3_c< T,C0,C1,C2 > +{ + typedef vector3_c< T,C0,C1,C2 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3 + > +struct vector_c< + T, C0, C1, C2, C3, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector4_c< T,C0,C1,C2,C3 > +{ + typedef vector4_c< T,C0,C1,C2,C3 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4 + > +struct vector_c< + T, C0, C1, C2, C3, C4, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + , LONG_MAX + > + : vector5_c< T,C0,C1,C2,C3,C4 > +{ + typedef vector5_c< T,C0,C1,C2,C3,C4 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, LONG_MAX, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector6_c< T,C0,C1,C2,C3,C4,C5 > +{ + typedef vector6_c< T,C0,C1,C2,C3,C4,C5 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6 + > +struct vector_c< + T, C0, C1, C2, C3, C4, C5, C6, LONG_MAX, LONG_MAX, LONG_MAX + > + : vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > +{ + typedef vector7_c< T,C0,C1,C2,C3,C4,C5,C6 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,LONG_MAX,LONG_MAX > + : vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > +{ + typedef vector8_c< T,C0,C1,C2,C3,C4,C5,C6,C7 > type; +}; + +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8 + > +struct vector_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,LONG_MAX > + : vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > +{ + typedef vector9_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8 > type; +}; + +// primary template (not a specialization!) +template< + typename T + , long C0, long C1, long C2, long C3, long C4, long C5, long C6, long C7 + , long C8, long C9 + > +struct vector_c + : vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > +{ + typedef vector10_c< T,C0,C1,C2,C3,C4,C5,C6,C7,C8,C9 > type; +}; + +} // namespace mpl +} // namespace boost + diff --git a/include/boost/mpl/aux_/preprocessor/add.hpp b/include/boost/mpl/aux_/preprocessor/add.hpp new file mode 100644 index 0000000..882c546 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/add.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/add.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED + +#include "boost/mpl/aux_/preprocessor/tuple.hpp" + +#if !defined(__MWERKS__) || __MWERKS__ > 0x3002 +# define BOOST_MPL_PP_ADD(i,j) \ + BOOST_MPL_PP_ADD_DELAY(i,j) + +# define BOOST_MPL_PP_ADD_DELAY(i,j) \ + BOOST_PP_MPL_TUPLE_11_ELEM_##i BOOST_MPL_PP_ADD_##j \ + /**/ +#else +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_ADD(i,j) \ + BOOST_MPL_PP_ADD_DELAY(i,j) \ + /**/ + +# define BOOST_MPL_PP_ADD_DELAY(i,j) \ + BOOST_PP_CAT(BOOST_PP_MPL_TUPLE_11_ELEM_##i,BOOST_MPL_PP_ADD_##j) \ + /**/ +#endif // __MWERKS__ + +#define BOOST_MPL_PP_ADD_0 (0,1,2,3,4,5,6,7,8,9,10) +#define BOOST_MPL_PP_ADD_1 (1,2,3,4,5,6,7,8,9,10,0) +#define BOOST_MPL_PP_ADD_2 (2,3,4,5,6,7,8,9,10,0,0) +#define BOOST_MPL_PP_ADD_3 (3,4,5,6,7,8,9,10,0,0,0) +#define BOOST_MPL_PP_ADD_4 (4,5,6,7,8,9,10,0,0,0,0) +#define BOOST_MPL_PP_ADD_5 (5,6,7,8,9,10,0,0,0,0,0) +#define BOOST_MPL_PP_ADD_6 (6,7,8,9,10,0,0,0,0,0,0) +#define BOOST_MPL_PP_ADD_7 (7,8,9,10,0,0,0,0,0,0,0) +#define BOOST_MPL_PP_ADD_8 (8,9,10,0,0,0,0,0,0,0,0) +#define BOOST_MPL_PP_ADD_9 (9,10,0,0,0,0,0,0,0,0,0) +#define BOOST_MPL_PP_ADD_10 (10,0,0,0,0,0,0,0,0,0,0) + +#endif // BOOST_MPL_AUX_PREPROCESSOR_ADD_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp b/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp new file mode 100644 index 0000000..6914042 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/def_params_tail.hpp @@ -0,0 +1,82 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/def_params_tail.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED + +#include "boost/mpl/limits/arity.hpp" + +// BOOST_MPL_PP_DEF_PARAMS_TAIL(1,T): , T1 = void_, .., Tn = void_ +// BOOST_MPL_PP_DEF_PARAMS_TAIL(2,T): , T2 = void_, .., Tn = void_ +// BOOST_MPL_PP_DEF_PARAMS_TAIL(n,T): + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/mpl/aux_/preprocessor/filter_params.hpp" +# include "boost/mpl/aux_/preprocessor/sub.hpp" + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL(i,param) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1( \ + i \ + , BOOST_MPL_PP_SUB(BOOST_MPL_METAFUNCTION_MAX_ARITY,i) \ + , param \ + ) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_1(i,n,p) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,p) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_DELAY_2(i,n,p) \ + , BOOST_MPL_PP_DEF_PARAMS_TAIL_##i(n,p) \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2=void_,p##3=void_,p##4=void_,p##5=void_,p##6=void_,p##7=void_,p##8=void_,p##9=void_,p1) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3=void_,p##4=void_,p##5=void_,p##6=void_,p##7=void_,p##8=void_,p##9=void_,p1,p2) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4=void_,p##5=void_,p##6=void_,p##7=void_,p##8=void_,p##9=void_,p1,p2,p3) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5=void_,p##6=void_,p##7=void_,p##8=void_,p##9=void_,p1,p2,p3,p4) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6=void_,p##7=void_,p##8=void_,p##9=void_,p1,p2,p3,p4,p5) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7=void_,p##8=void_,p##9=void_,p1,p2,p3,p4,p5,p6) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8=void_,p##9=void_,p1,p2,p3,p4,p5,p6,p7) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9=void_,p1,p2,p3,p4,p5,p6,p7,p8) +# define BOOST_MPL_PP_DEF_PARAMS_TAIL_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p1,p2,p3,p4,p5,p6,p7,p8,p9) + +#else + +# include "boost/preprocessor/arithmetic/add.hpp" +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/tuple/elem.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC(i, op) \ + , BOOST_PP_CAT( \ + BOOST_PP_TUPLE_ELEM(2, 1, op) \ + , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2, 0, op)) \ + ) = void_ \ + /**/ + +# define BOOST_MPL_PP_DEF_PARAMS_TAIL(i, param) \ + BOOST_PP_REPEAT_1ST( \ + BOOST_PP_SUB_D(1, BOOST_MPL_METAFUNCTION_MAX_ARITY, i) \ + , BOOST_MPL_PP_AUX_TAIL_PARAM_FUNC \ + , (i, param) \ + ) \ + /**/ + +#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_DEF_PARAMS_TAIL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/default_params.hpp b/include/boost/mpl/aux_/preprocessor/default_params.hpp new file mode 100644 index 0000000..4e63eae --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/default_params.hpp @@ -0,0 +1,68 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/default_params.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED + +// BOOST_MPL_PP_DEFAULT_PARAMS(0,T,int): +// BOOST_MPL_PP_DEFAULT_PARAMS(1,T,int): T1 = int +// BOOST_MPL_PP_DEFAULT_PARAMS(2,T,int): T1 = int, T2 = int +// BOOST_MPL_PP_DEFAULT_PARAMS(n,T,int): T1 = int, T2 = int, .., Tn = int + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_DEFAULT_PARAMS(n,p,v) \ + BOOST_PP_CAT(BOOST_MPL_PP_DEFAULT_PARAMS_,n)(p,v) \ + /**/ + +# define BOOST_MPL_PP_DEFAULT_PARAMS_0(p,v) +# define BOOST_MPL_PP_DEFAULT_PARAMS_1(p,v) p##1=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_2(p,v) p##1=v,p##2=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_3(p,v) p##1=v,p##2=v,p##3=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_4(p,v) p##1=v,p##2=v,p##3=v,p##4=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_5(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_6(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_7(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_8(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v +# define BOOST_MPL_PP_DEFAULT_PARAMS_9(p,v) p##1=v,p##2=v,p##3=v,p##4=v,p##5=v,p##6=v,p##7=v,p##8=v,p##9=v + +#else + +# include "boost/preprocessor/tuple/elem.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC(i,pv) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_PP_CAT( BOOST_PP_TUPLE_ELEM(2,0,pv), BOOST_PP_INC(i) ) \ + = BOOST_PP_TUPLE_ELEM(2,1,pv) \ + /**/ + +# define BOOST_MPL_PP_DEFAULT_PARAMS(n,param,value) \ + BOOST_PP_REPEAT_1ST( \ + n \ + , BOOST_MPL_PP_AUX_DEFAULT_PARAM_FUNC \ + , (param,value) \ + ) \ + /**/ + +#endif // BOOST_MPL_USE_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_DEFAULT_PARAMS_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/enum.hpp b/include/boost/mpl/aux_/preprocessor/enum.hpp new file mode 100644 index 0000000..d6f75a8 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/enum.hpp @@ -0,0 +1,63 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/enum.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED + +// BOOST_MPL_PP_ENUM(0,int): +// BOOST_MPL_PP_ENUM(1,int): int +// BOOST_MPL_PP_ENUM(2,int): int, int +// BOOST_MPL_PP_ENUM(n,int): int, int, .., int + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_ENUM(n,param) \ + BOOST_PP_CAT(BOOST_MPL_PP_ENUM_,n)(param) \ + /**/ + +# define BOOST_MPL_PP_ENUM_0(p) +# define BOOST_MPL_PP_ENUM_1(p) p +# define BOOST_MPL_PP_ENUM_2(p) p,p +# define BOOST_MPL_PP_ENUM_3(p) p,p,p +# define BOOST_MPL_PP_ENUM_4(p) p,p,p,p +# define BOOST_MPL_PP_ENUM_5(p) p,p,p,p,p +# define BOOST_MPL_PP_ENUM_6(p) p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_7(p) p,p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_8(p) p,p,p,p,p,p,p,p +# define BOOST_MPL_PP_ENUM_9(p) p,p,p,p,p,p,p,p,p + +#else + +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/repeat.hpp" + +# define BOOST_MPL_PP_AUX_ENUM_FUNC(i,param) \ + BOOST_PP_COMMA_IF(i) param \ + /**/ + +# define BOOST_MPL_PP_ENUM(n,param) \ + BOOST_PP_REPEAT( \ + n \ + , BOOST_MPL_PP_AUX_ENUM_FUNC \ + , param \ + ) \ + /**/ + +#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_ENUM_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/ext_params.hpp b/include/boost/mpl/aux_/preprocessor/ext_params.hpp new file mode 100644 index 0000000..26fb65c --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/ext_params.hpp @@ -0,0 +1,79 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/ext_params.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED + +// BOOST_MPL_PP_EXT_PARAMS(1,1,T): +// BOOST_MPL_PP_EXT_PARAMS(1,2,T): T1 +// BOOST_MPL_PP_EXT_PARAMS(1,3,T): T1, T2 +// BOOST_MPL_PP_EXT_PARAMS(1,n,T): T1, T2, .., Tn-1 + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/mpl/aux_/preprocessor/filter_params.hpp" +# include "boost/mpl/aux_/preprocessor/sub.hpp" + +# define BOOST_MPL_PP_EXT_PARAMS(i,j,p) \ + BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,BOOST_MPL_PP_SUB(j,i),p) \ + /**/ + +# define BOOST_MPL_PP_EXT_PARAMS_DELAY_1(i,n,p) \ + BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \ + /**/ + +# define BOOST_MPL_PP_EXT_PARAMS_DELAY_2(i,n,p) \ + BOOST_MPL_PP_EXT_PARAMS_##i(n,p) \ + /**/ + +# define BOOST_MPL_PP_EXT_PARAMS_1(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9) +# define BOOST_MPL_PP_EXT_PARAMS_2(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1) +# define BOOST_MPL_PP_EXT_PARAMS_3(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##3,p##4,p##5,p##6,p##7,p##8,p##9,p1,p2) +# define BOOST_MPL_PP_EXT_PARAMS_4(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##4,p##5,p##6,p##7,p##8,p##9,p1,p2,p3) +# define BOOST_MPL_PP_EXT_PARAMS_5(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##5,p##6,p##7,p##8,p##9,p1,p2,p3,p4) +# define BOOST_MPL_PP_EXT_PARAMS_6(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##6,p##7,p##8,p##9,p1,p2,p3,p4,p5) +# define BOOST_MPL_PP_EXT_PARAMS_7(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##7,p##8,p##9,p1,p2,p3,p4,p5,p6) +# define BOOST_MPL_PP_EXT_PARAMS_8(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##8,p##9,p1,p2,p3,p4,p5,p6,p7) +# define BOOST_MPL_PP_EXT_PARAMS_9(i,p) BOOST_MPL_PP_FILTER_PARAMS_##i(p##9,p1,p2,p3,p4,p5,p6,p7,p8) + +#else + +# include "boost/preprocessor/arithmetic/add.hpp" +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/tuple/elem.hpp" +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_AUX_EXT_PARAM_FUNC(i,op) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_PP_CAT( \ + BOOST_PP_TUPLE_ELEM(2,1,op) \ + , BOOST_PP_ADD_D(1, i, BOOST_PP_TUPLE_ELEM(2,0,op)) \ + ) \ + /**/ + +# define BOOST_MPL_PP_EXT_PARAMS(i,j,param) \ + BOOST_PP_REPEAT( \ + BOOST_PP_SUB_D(1,j,i) \ + , BOOST_MPL_PP_AUX_EXT_PARAM_FUNC \ + , (i,param) \ + ) \ + /**/ + +#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_EXT_PARAMS_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/filter_params.hpp b/include/boost/mpl/aux_/preprocessor/filter_params.hpp new file mode 100644 index 0000000..b6dc3f9 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/filter_params.hpp @@ -0,0 +1,31 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/filter_params.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED + +#define BOOST_MPL_PP_FILTER_PARAMS_0(p1,p2,p3,p4,p5,p6,p7,p8,p9) +#define BOOST_MPL_PP_FILTER_PARAMS_1(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1 +#define BOOST_MPL_PP_FILTER_PARAMS_2(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2 +#define BOOST_MPL_PP_FILTER_PARAMS_3(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3 +#define BOOST_MPL_PP_FILTER_PARAMS_4(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4 +#define BOOST_MPL_PP_FILTER_PARAMS_5(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5 +#define BOOST_MPL_PP_FILTER_PARAMS_6(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6 +#define BOOST_MPL_PP_FILTER_PARAMS_7(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7 +#define BOOST_MPL_PP_FILTER_PARAMS_8(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8 +#define BOOST_MPL_PP_FILTER_PARAMS_9(p1,p2,p3,p4,p5,p6,p7,p8,p9) p1,p2,p3,p4,p5,p6,p7,p8,p9 + +#endif // BOOST_MPL_AUX_PREPROCESSOR_FILTER_PARAMS_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/params.hpp b/include/boost/mpl/aux_/preprocessor/params.hpp new file mode 100644 index 0000000..5f55f73 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/params.hpp @@ -0,0 +1,66 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/params.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED + +// BOOST_MPL_PP_PARAMS(0,T): +// BOOST_MPL_PP_PARAMS(1,T): T1 +// BOOST_MPL_PP_PARAMS(2,T): T1, T2 +// BOOST_MPL_PP_PARAMS(n,T): T1, T2, .., Tn + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_PARAMS(n,p) \ + BOOST_PP_CAT(BOOST_MPL_PP_PARAMS_,n)(p) \ + /**/ + +# define BOOST_MPL_PP_PARAMS_0(p) +# define BOOST_MPL_PP_PARAMS_1(p) p##1 +# define BOOST_MPL_PP_PARAMS_2(p) p##1,p##2 +# define BOOST_MPL_PP_PARAMS_3(p) p##1,p##2,p##3 +# define BOOST_MPL_PP_PARAMS_4(p) p##1,p##2,p##3,p##4 +# define BOOST_MPL_PP_PARAMS_5(p) p##1,p##2,p##3,p##4,p##5 +# define BOOST_MPL_PP_PARAMS_6(p) p##1,p##2,p##3,p##4,p##5,p##6 +# define BOOST_MPL_PP_PARAMS_7(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7 +# define BOOST_MPL_PP_PARAMS_8(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8 +# define BOOST_MPL_PP_PARAMS_9(p) p##1,p##2,p##3,p##4,p##5,p##6,p##7,p##8,p##9 + +#else + +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_AUX_PARAM_FUNC(z, i, param) \ + BOOST_PP_COMMA_IF(i) \ + BOOST_PP_CAT(param, BOOST_PP_INC(i)) \ + /**/ + +# define BOOST_MPL_PP_PARAMS(n,param) \ + BOOST_PP_REPEAT( \ + n \ + , BOOST_MPL_PP_AUX_PARAM_FUNC \ + , param \ + ) \ + /**/ + +#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_PARAMS_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/project1st.hpp b/include/boost/mpl/aux_/preprocessor/project1st.hpp new file mode 100644 index 0000000..aaf2430 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/project1st.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/project1st.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_PROJECT1ST_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_PROJECT1ST_HPP_INCLUDED + +// should be in PREPROCESSOR library +#define BOOST_MPL_PP_PROJECT1ST(first, second) first +#define BOOST_MPL_PP_PROJECT2ND(first, second) second + +#endif // BOOST_MPL_AUX_PREPROCESSOR_PROJECT1ST_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/repeat.hpp b/include/boost/mpl/aux_/preprocessor/repeat.hpp new file mode 100644 index 0000000..0bae55b --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/repeat.hpp @@ -0,0 +1,50 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/repeat.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED + +#if !defined(BOOST_MPL_NO_OWN_PP_PRIMITIVES) + +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_REPEAT(n,f,param) \ + BOOST_PP_CAT(BOOST_MPL_PP_REPEAT_,n)(f,param) \ + /**/ + +# define BOOST_MPL_PP_REPEAT_0(f,p) +# define BOOST_MPL_PP_REPEAT_1(f,p) f(0,p) +# define BOOST_MPL_PP_REPEAT_2(f,p) f(0,p) f(1,p) +# define BOOST_MPL_PP_REPEAT_3(f,p) f(0,p) f(1,p) f(2,p) +# define BOOST_MPL_PP_REPEAT_4(f,p) f(0,p) f(1,p) f(2,p) f(3,p) +# define BOOST_MPL_PP_REPEAT_5(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) +# define BOOST_MPL_PP_REPEAT_6(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) f(5,p) +# define BOOST_MPL_PP_REPEAT_7(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) f(5,p) f(6,p) +# define BOOST_MPL_PP_REPEAT_8(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) f(5,p) f(6,p) f(7,p) +# define BOOST_MPL_PP_REPEAT_9(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) f(5,p) f(6,p) f(7,p) f(8,p) +# define BOOST_MPL_PP_REPEAT_10(f,p) f(0,p) f(1,p) f(2,p) f(3,p) f(4,p) f(5,p) f(6,p) f(7,p) f(8,p) f(9,p) + +#else + +# include "boost/preprocessor/repeat.hpp" + +# define BOOST_MPL_PP_REPEAT(n,f,param) \ + BOOST_PP_REPEAT(n,f,param) \ + /**/ + +#endif // BOOST_MPL_NO_OWN_PP_PRIMITIVES + +#endif // BOOST_MPL_AUX_PREPROCESSOR_REPEAT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/sub.hpp b/include/boost/mpl/aux_/preprocessor/sub.hpp new file mode 100644 index 0000000..dc960b0 --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/sub.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/sub.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED + +#include "boost/mpl/aux_/preprocessor/tuple.hpp" + +#if !defined(__MWERKS__) || __MWERKS__ > 0x3002 +# define BOOST_MPL_PP_SUB(i,j) \ + BOOST_MPL_PP_SUB_DELAY(i,j) + +# define BOOST_MPL_PP_SUB_DELAY(i,j) \ + BOOST_PP_MPL_TUPLE_11_ELEM_##i BOOST_MPL_PP_SUB_##j \ + /**/ +#else +# include "boost/preprocessor/cat.hpp" + +# define BOOST_MPL_PP_SUB(i,j) \ + BOOST_MPL_PP_SUB_DELAY(i,j) \ + /**/ + +# define BOOST_MPL_PP_SUB_DELAY(i,j) \ + BOOST_PP_CAT(BOOST_PP_MPL_TUPLE_11_ELEM_##i,BOOST_MPL_PP_SUB_##j) \ + /**/ +#endif // __MWERKS__ + +#define BOOST_MPL_PP_SUB_0 (0,1,2,3,4,5,6,7,8,9,10) +#define BOOST_MPL_PP_SUB_1 (0,0,1,2,3,4,5,6,7,8,9) +#define BOOST_MPL_PP_SUB_2 (0,0,0,1,2,3,4,5,6,7,8) +#define BOOST_MPL_PP_SUB_3 (0,0,0,0,1,2,3,4,5,6,7) +#define BOOST_MPL_PP_SUB_4 (0,0,0,0,0,1,2,3,4,5,6) +#define BOOST_MPL_PP_SUB_5 (0,0,0,0,0,0,1,2,3,4,5) +#define BOOST_MPL_PP_SUB_6 (0,0,0,0,0,0,0,1,2,3,4) +#define BOOST_MPL_PP_SUB_7 (0,0,0,0,0,0,0,0 1,2,3) +#define BOOST_MPL_PP_SUB_8 (0,0,0,0,0,0,0,0,0,1,2) +#define BOOST_MPL_PP_SUB_9 (0,0,0,0,0,0,0,0,0,0,1) +#define BOOST_MPL_PP_SUB_10 (0,0,0,0,0,0,0,0,0,0,0) + +#endif // BOOST_MPL_AUX_PREPROCESSOR_SUB_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/preprocessor/tuple.hpp b/include/boost/mpl/aux_/preprocessor/tuple.hpp new file mode 100644 index 0000000..ad442ed --- /dev/null +++ b/include/boost/mpl/aux_/preprocessor/tuple.hpp @@ -0,0 +1,32 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/preprocessor/tuple.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED +#define BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED + +#define BOOST_PP_MPL_TUPLE_11_ELEM_0(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e0 +#define BOOST_PP_MPL_TUPLE_11_ELEM_1(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e1 +#define BOOST_PP_MPL_TUPLE_11_ELEM_2(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e2 +#define BOOST_PP_MPL_TUPLE_11_ELEM_3(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e3 +#define BOOST_PP_MPL_TUPLE_11_ELEM_4(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e4 +#define BOOST_PP_MPL_TUPLE_11_ELEM_5(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e5 +#define BOOST_PP_MPL_TUPLE_11_ELEM_6(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e6 +#define BOOST_PP_MPL_TUPLE_11_ELEM_7(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e7 +#define BOOST_PP_MPL_TUPLE_11_ELEM_8(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e8 +#define BOOST_PP_MPL_TUPLE_11_ELEM_9(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e9 +#define BOOST_PP_MPL_TUPLE_11_ELEM_10(e0,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10) e10 + +#endif // BOOST_MPL_AUX_PREPROCESSOR_TUPLE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/prior.hpp b/include/boost/mpl/aux_/prior.hpp new file mode 100644 index 0000000..5ffb3ea --- /dev/null +++ b/include/boost/mpl/aux_/prior.hpp @@ -0,0 +1,34 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/prior.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PRIOR_HPP_INCLUDED +#define BOOST_MPL_AUX_PRIOR_HPP_INCLUDED + +#if defined(BOOST_MPL_USE_NEXT_INTERNALLY) + +# if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/prior.hpp" +# endif + +# define BOOST_MPL_AUX_PRIOR(x) prior::type + +#else + +# define BOOST_MPL_AUX_PRIOR(x) x::prior + +#endif + +#endif // BOOST_MPL_AUX_PRIOR_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/push_back_impl.hpp b/include/boost/mpl/aux_/push_back_impl.hpp new file mode 100644 index 0000000..cb99858 --- /dev/null +++ b/include/boost/mpl/aux_/push_back_impl.hpp @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/push_back_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED + +#include "boost/mpl/push_back_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// no default implementation; the definition is needed to make happy the deficient +// compilers + +template< typename Tag > +struct push_back_traits +{ + template< typename Sequence, typename T > struct algorithm; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,push_back_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/push_front_impl.hpp b/include/boost/mpl/aux_/push_front_impl.hpp new file mode 100644 index 0000000..416b6bf --- /dev/null +++ b/include/boost/mpl/aux_/push_front_impl.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/push_front_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED + +#include "boost/mpl/push_front_fwd.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// no default implementation; the definition is needed to make MSVC happy + +template< typename Tag > +struct push_front_traits +{ + template< typename Sequence, typename T > struct algorithm; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(2,push_front_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_PUSH_FRONT_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/O1_size.hpp b/include/boost/mpl/aux_/range_c/O1_size.hpp new file mode 100644 index 0000000..6905daf --- /dev/null +++ b/include/boost/mpl/aux_/range_c/O1_size.hpp @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/O1_size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED + +#include "boost/mpl/O1_size_fwd.hpp" +#include "boost/mpl/aux_/range_c/size.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct O1_size_traits< aux::half_open_range_tag > + : size_traits< aux::half_open_range_tag > +{ +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_O1_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/back.hpp b/include/boost/mpl/aux_/range_c/back.hpp new file mode 100644 index 0000000..1215bec --- /dev/null +++ b/include/boost/mpl/aux_/range_c/back.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED + +#include "boost/mpl/back_fwd.hpp" +#include "boost/mpl/prior.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct back_traits< aux::half_open_range_tag > +{ + template< typename Range > struct algorithm + { + typedef typename prior< typename Range::finish >::type type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/begin_end.hpp b/include/boost/mpl/aux_/range_c/begin_end.hpp new file mode 100644 index 0000000..0e8d701 --- /dev/null +++ b/include/boost/mpl/aux_/range_c/begin_end.hpp @@ -0,0 +1,49 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/begin_end.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED + +#include "boost/mpl/begin_end_fwd.hpp" +#include "boost/mpl/list/aux_/iterator.hpp" +#include "boost/mpl/list/aux_/tag.hpp" +#include "boost/mpl/list/aux_/node.hpp" + +namespace boost { +namespace mpl { + +template<> +struct begin_traits< aux::list_tag > +{ + template< typename List > struct algorithm + { + typedef list_iterator type; + }; +}; + +template<> +struct end_traits< aux::list_tag > +{ + template< typename > struct algorithm + { + typedef list_iterator type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/empty.hpp b/include/boost/mpl/aux_/range_c/empty.hpp new file mode 100644 index 0000000..5bddd7b --- /dev/null +++ b/include/boost/mpl/aux_/range_c/empty.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/empty.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED + +#include "boost/mpl/empty_fwd.hpp" +#include "boost/mpl/comparison/equal_to.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct empty_traits< aux::half_open_range_tag > +{ + template< typename Range > struct algorithm + : equal_to< + typename Range::start + , typename Range::finish + > + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/front.hpp b/include/boost/mpl/aux_/range_c/front.hpp new file mode 100644 index 0000000..c18bd49 --- /dev/null +++ b/include/boost/mpl/aux_/range_c/front.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED + +#include "boost/mpl/front_fwd.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct front_traits< aux::half_open_range_tag > +{ + template< typename Range > struct algorithm + { + typedef typename Range::start type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/iterator.hpp b/include/boost/mpl/aux_/range_c/iterator.hpp new file mode 100644 index 0000000..ce4128f --- /dev/null +++ b/include/boost/mpl/aux_/range_c/iterator.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/iterator.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED + +#include "boost/mpl/iterator_tag.hpp" +#include "boost/mpl/arithmetic/plus.hpp" +#include "boost/mpl/arithmetic/minus.hpp" +#include "boost/mpl/aux_/iterator_names.hpp" + +namespace boost { +namespace mpl { + +template< typename N > +struct range_c_iterator +{ + typedef ra_iter_tag_ category; + typedef N type; + + typedef range_c_iterator next; + typedef range_c_iterator prior; + + template< typename D > + struct BOOST_MPL_AUX_ITERATOR_ADVANCE + { + typedef range_c_iterator< + typename plus::type + > type; + }; + + template< typename U > + struct BOOST_MPL_AUX_ITERATOR_DISTANCE + { + typedef typename minus::type type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/size.hpp b/include/boost/mpl/aux_/range_c/size.hpp new file mode 100644 index 0000000..515afb9 --- /dev/null +++ b/include/boost/mpl/aux_/range_c/size.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED + +#include "boost/mpl/size_fwd.hpp" +#include "boost/mpl/arithmetic/minus.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct size_traits< aux::half_open_range_tag > +{ + template< typename Range > struct algorithm + : minus< + typename Range::finish + , typename Range::start + > + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/range_c/tag.hpp b/include/boost/mpl/aux_/range_c/tag.hpp new file mode 100644 index 0000000..ade02d8 --- /dev/null +++ b/include/boost/mpl/aux_/range_c/tag.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/range_c/tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED +#define BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +struct half_open_range_tag; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_RANGE_C_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/sequence_tag.hpp b/include/boost/mpl/aux_/sequence_tag.hpp new file mode 100644 index 0000000..a95698d --- /dev/null +++ b/include/boost/mpl/aux_/sequence_tag.hpp @@ -0,0 +1,34 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/sequence_tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_SEQUENCE_TAG_HPP_INCLUDED +#define BOOST_MPL_AUX_SEQUENCE_TAG_HPP_INCLUDED + +#include "boost/config.hpp" + +#if defined(BOOST_MPL_INTERNAL_USE_SEQUENCE_TAG) || \ + defined(BOOST_MSVC) && BOOST_MSVC < 1300 +# include "boost/mpl/sequence_tag.hpp" + +# define BOOST_MPL_AUX_SEQUENCE_TAG(seq) sequence_tag::type + +#else + +# define BOOST_MPL_AUX_SEQUENCE_TAG(seq) seq::tag + +#endif + +#endif // BOOST_MPL_AUX_SEQUENCE_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/size_impl.hpp b/include/boost/mpl/aux_/size_impl.hpp new file mode 100644 index 0000000..3ddec9c --- /dev/null +++ b/include/boost/mpl/aux_/size_impl.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/size_impl.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED +#define BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED + +#include "boost/mpl/size_fwd.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/distance.hpp" +#include "boost/mpl/aux_/traits_lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// default implementation; conrete sequences might override it by +// specializing either the |size_traits| or the primary |size| template + +template< typename Tag > +struct size_traits +{ + template< typename Sequence > struct algorithm + : distance< + typename begin::type + , typename end::type + > + { + }; +}; + +BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(1,size_traits) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_SIZE_IMPL_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/template_arity.hpp b/include/boost/mpl/aux_/template_arity.hpp new file mode 100644 index 0000000..c431dc4 --- /dev/null +++ b/include/boost/mpl/aux_/template_arity.hpp @@ -0,0 +1,80 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/template_arity.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED +#define BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED + +#include "boost/mpl/aux_/template_arity_fwd.hpp" +#include "boost/mpl/aux_/has_rebind.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +// gcc ICEs on |has_rebind| +#if !defined(__GNUC__) + +template< bool > +struct template_arity_impl +{ + template< typename F > struct result_ + { + BOOST_STATIC_CONSTANT(int, value = -1); + }; +}; + +template<> +struct template_arity_impl +{ + template< typename F > struct result_ + { + typedef typename F::rebind f_; + BOOST_STATIC_CONSTANT(int, value = f_::arity); + }; +}; + +template< typename F > +struct template_arity + : template_arity_impl< ::boost::mpl::aux::has_rebind::value > + ::template result_ +{ +}; + +#else + +template< typename F > +struct template_arity +{ + BOOST_STATIC_CONSTANT(int, value = -1); +}; + +#endif // __GNUC__ + +#if defined(BOOST_MSVC) && BOOST_MSVC == 1300 +// workaround for MSVC 7.0 "early template instantiation bug" +template<> +struct template_arity +{ + BOOST_STATIC_CONSTANT(int, value = -1); +}; +#endif + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/template_arity_fwd.hpp b/include/boost/mpl/aux_/template_arity_fwd.hpp new file mode 100644 index 0000000..6cb409e --- /dev/null +++ b/include/boost/mpl/aux_/template_arity_fwd.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/template_arity_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED +#define BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +template< typename F > struct template_arity; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_TEMPLATE_ARITY_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/traits_lambda_spec.hpp b/include/boost/mpl/aux_/traits_lambda_spec.hpp new file mode 100644 index 0000000..a2627e7 --- /dev/null +++ b/include/boost/mpl/aux_/traits_lambda_spec.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/traits_lambda_spec.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED +#define BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED + +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/preprocessor/params.hpp" +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) + +# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) /**/ + +#else + +# define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait) \ +template<> struct trait \ +{ \ + template< BOOST_MPL_PP_PARAMS(i, typename T) > struct algorithm \ + { \ + }; \ +}; \ +/**/ + +#endif // BOOST_MPL_NO_FULL_LAMBDA_SUPPORT + +#endif // BOOST_MPL_AUX_TRAITS_LAMBDA_SPEC_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/type_wrapper.hpp b/include/boost/mpl/aux_/type_wrapper.hpp new file mode 100644 index 0000000..bd33ed8 --- /dev/null +++ b/include/boost/mpl/aux_/type_wrapper.hpp @@ -0,0 +1,33 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux/type_wrapper.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED +#define BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +template< typename T > struct type_wrapper +{ + typedef T type; +}; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_TYPE_WRAPPER_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/typeof.hpp b/include/boost/mpl/aux_/typeof.hpp new file mode 100644 index 0000000..1635b28 --- /dev/null +++ b/include/boost/mpl/aux_/typeof.hpp @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/typeof.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_TYPEOF_HPP_INCLUDED +#define BOOST_MPL_AUX_TYPEOF_HPP_INCLUDED + +#if defined(__BORLANDC__) +# define BOOST_MPL_AUX_TYPEOF(T,x) typename T::value_type +#elif defined(__MWERKS__) || defined(BOOST_MSVC) && BOOST_MSVC <= 1300 +# define BOOST_MPL_AUX_TYPEOF(T,x) long +#elif defined(__GCC__) +# define BOOST_MPL_AUX_TYPEOF(T,x) __typeof__(x) +#else +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +// the implementation below is based on "A Portable typeof Operator" article +// by Bill Gibbons, C++ User Journal, November 2000 + +namespace aux { +template< long N > struct typeof_answer { typedef char type[N]; }; +template< long > struct typeof_c; +} + +#define BOOST_MPL_AUX_REGISTER_TYPE(index, T) \ +namespace boost { namespace mpl { namespace aux { \ +template<> struct typeof_c { typedef T type; }; \ +typeof_answer::type& type_index(T const&); \ +}}} \ +/**/ + +#define BOOST_MPL_AUX_TYPEOF(T,x) \ +typename boost::mpl::aux::typeof_c< \ + sizeof(::boost::mpl::aux::type_index(x)) \ + >::type \ +/**/ + +} // namespace mpl +} // namespace boost + +BOOST_MPL_AUX_REGISTER_TYPE(1, bool) +BOOST_MPL_AUX_REGISTER_TYPE(2, signed char) +BOOST_MPL_AUX_REGISTER_TYPE(3, unsigned char) +BOOST_MPL_AUX_REGISTER_TYPE(4, char) +#if !defined(BOOST_NO_INTRINSIC_WCHAR_T) +BOOST_MPL_AUX_REGISTER_TYPE(5, wchar_t) +#endif +BOOST_MPL_AUX_REGISTER_TYPE(6, short) +BOOST_MPL_AUX_REGISTER_TYPE(7, unsigned short) +BOOST_MPL_AUX_REGISTER_TYPE(8, int) +BOOST_MPL_AUX_REGISTER_TYPE(9, unsigned int) +BOOST_MPL_AUX_REGISTER_TYPE(10, long) +BOOST_MPL_AUX_REGISTER_TYPE(11, unsigned long) +//BOOST_MPL_AUX_REGISTER_TYPE(12, float) +//BOOST_MPL_AUX_REGISTER_TYPE(13, double) +//BOOST_MPL_AUX_REGISTER_TYPE(14, long double) + +#endif // __GCC__ + +#endif // BOOST_MPL_AUX_TYPEOF_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/value_wknd.hpp b/include/boost/mpl/aux_/value_wknd.hpp new file mode 100644 index 0000000..2463412 --- /dev/null +++ b/include/boost/mpl/aux_/value_wknd.hpp @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/value_wknd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED +#define BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED + +#if defined(__BORLANDC__) + +namespace boost { namespace mpl { namespace aux { + +template< typename C > +struct value_wknd + : C +{ +}; + +}}} // namespace boost::mpl::aux + +# define BOOST_MPL_AUX_VALUE_WKND(C) ::boost::mpl::aux::value_wknd + +#else + +# define BOOST_MPL_AUX_VALUE_WKND(C) C + +#endif // __BORLANDC__ + +#endif // BOOST_MPL_AUX_VALUE_WKND_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/void_spec.hpp b/include/boost/mpl/aux_/void_spec.hpp new file mode 100644 index 0000000..d0afa67 --- /dev/null +++ b/include/boost/mpl/aux_/void_spec.hpp @@ -0,0 +1,112 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/void_spec.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED +#define BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED + +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/arity.hpp" +#include "boost/mpl/aux_/template_arity_fwd.hpp" +#include "boost/mpl/aux_/config/dtp.hpp" +#include "boost/mpl/aux_/config/ttp.hpp" +#include "boost/mpl/aux_/config/lambda_support.hpp" +#include "boost/mpl/aux_/config/overload_resolution.hpp" +#include "boost/mpl/aux_/preprocessor/params.hpp" +#include "boost/mpl/aux_/preprocessor/enum.hpp" +#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp" + +#include "boost/config.hpp" + +#define BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) \ + BOOST_MPL_PP_ENUM(i, void_) \ +/**/ + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +# define BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \ +namespace aux { \ +template< int N > \ +struct arity< \ + name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \ + , N \ + > \ +{ \ + BOOST_STATIC_CONSTANT(int \ + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY \ + ); \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) /**/ +#endif + +#if defined(BOOST_EXTENDED_TEMPLATE_PARAMETERS_MATCHING) || \ + defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) && \ + defined(BOOST_MPL_BROKEN_OVERLOAD_RESOLUTION) +# define BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, j, name) \ +namespace aux { \ +template< BOOST_MPL_PP_PARAMS(j, typename T) > \ +struct template_arity< \ + name< BOOST_MPL_PP_PARAMS(j, T) > \ + > \ +{ \ + BOOST_STATIC_CONSTANT(int, value = j ); \ +}; \ +\ +template<> \ +struct template_arity< \ + name< BOOST_MPL_PP_ENUM(i, void_) > \ + > \ +{ \ + BOOST_STATIC_CONSTANT(int, value = j ); \ +}; \ +} \ +/**/ +#else +# define BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, j, name) /**/ +#endif + +#define BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \ +template<> \ +struct name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \ +{ \ + template< \ + BOOST_MPL_PP_PARAMS(i, typename T) \ + BOOST_MPL_PP_DEF_PARAMS_TAIL(i, typename T) \ + > \ + struct apply \ + : name< BOOST_MPL_PP_PARAMS(i, T) > \ + { \ + }; \ +}; \ +/**/ + +#define BOOST_MPL_AUX_VOID_SPEC_PARAM(param) param = void_ + +#define BOOST_MPL_AUX_VOID_SPEC(i, name) \ +BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \ +BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \ +BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, i, name) \ +/**/ + +#define BOOST_MPL_AUX_VOID_SPEC_EXT(i, j, name) \ +BOOST_MPL_AUX_VOID_SPEC_MAIN(i, name) \ +BOOST_MPL_AUX_VOID_SPEC_ARITY(i, name) \ +BOOST_MPL_AUX_VOID_SPEC_TEMPLATE_ARITY(i, j, name) \ +/**/ + + +#endif // BOOST_MPL_AUX_VOID_SPEC_HPP_INCLUDED diff --git a/include/boost/mpl/aux_/yes_no.hpp b/include/boost/mpl/aux_/yes_no.hpp new file mode 100644 index 0000000..b7a1999 --- /dev/null +++ b/include/boost/mpl/aux_/yes_no.hpp @@ -0,0 +1,31 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/yes_no.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_YES_NO_HPP_INCLUDED +#define BOOST_MPL_AUX_YES_NO_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +typedef char (&no_tag)[1]; +typedef char (&yes_tag)[2]; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_YES_NO_HPP_INCLUDED diff --git a/include/boost/mpl/back.hpp b/include/boost/mpl/back.hpp new file mode 100644 index 0000000..546b9fb --- /dev/null +++ b/include/boost/mpl/back.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_BACK_HPP_INCLUDED +#define BOOST_MPL_BACK_HPP_INCLUDED + +#include "boost/mpl/back_fwd.hpp" +#include "boost/mpl/aux_/back_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct back + : back_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,back,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, back) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/back_fwd.hpp b/include/boost/mpl/back_fwd.hpp new file mode 100644 index 0000000..a291ee4 --- /dev/null +++ b/include/boost/mpl/back_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/back_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_BACK_FWD_HPP_INCLUDED +#define BOOST_MPL_BACK_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct back_traits; +template< typename Sequence > struct back; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_BACK_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/begin_end.hpp b/include/boost/mpl/begin_end.hpp new file mode 100644 index 0000000..55dbc67 --- /dev/null +++ b/include/boost/mpl/begin_end.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/begin_end.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_BEGIN_END_HPP_INCLUDED +#define BOOST_MPL_BEGIN_END_HPP_INCLUDED + +#include "boost/mpl/begin_end_fwd.hpp" +#include "boost/mpl/aux_/begin_end_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +// agurt, 13/sep/02: switched from inheritance to typedef; MSVC is more +// happy this way (less ETI-related errors), and it doesn't affect +// anything else +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct begin +{ + typedef typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) tag_; + typedef typename begin_traits< tag_ > + ::template algorithm< Sequence >::type type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,begin,(Sequence)) +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct end +{ + typedef typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) tag_; + typedef typename end_traits< tag_ > + ::template algorithm< Sequence >::type type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,end,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, begin) +BOOST_MPL_AUX_VOID_SPEC(1, end) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_BEGIN_END_HPP_INCLUDED diff --git a/include/boost/mpl/begin_end_fwd.hpp b/include/boost/mpl/begin_end_fwd.hpp new file mode 100644 index 0000000..0106442 --- /dev/null +++ b/include/boost/mpl/begin_end_fwd.hpp @@ -0,0 +1,32 @@ +//----------------------------------------------------------------------------- +// boost mpl/begin_end_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED +#define BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct begin_traits; +template< typename Tag > struct end_traits; + +template< typename Sequence > struct begin; +template< typename Sequence > struct end; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_BEGIN_END_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/bind.hpp b/include/boost/mpl/bind.hpp new file mode 100644 index 0000000..dc34c19 --- /dev/null +++ b/include/boost/mpl/bind.hpp @@ -0,0 +1,542 @@ +//----------------------------------------------------------------------------- +// boost mpl/bind.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_BIND_HPP_INCLUDED +#define BOOST_MPL_BIND_HPP_INCLUDED + +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/config/bind.hpp" +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/placeholder.hpp" +# include "boost/mpl/void.hpp" +# include "boost/mpl/protect.hpp" +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/arity.hpp" +# include "boost/mpl/aux_/type_wrapper.hpp" +# include "boost/mpl/aux_/yes_no.hpp" +# include "boost/type_traits/same_traits.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) +# define BOOST_MPL_PREPROCESSED_HEADER basic_bind.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER bind.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/preprocessor/default_params.hpp" +# include "boost/mpl/aux_/preprocessor/def_params_tail.hpp" +# include "boost/mpl/aux_/preprocessor/enum.hpp" +# include "boost/mpl/aux_/preprocessor/add.hpp" +# include "boost/mpl/aux_/preprocessor/sub.hpp" +# include "boost/mpl/aux_/config/dtp.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +// local macros, #undef-ined at the end of the header +# define AUX_APPLY(args) \ + BOOST_MPL_AUX_APPLY(BOOST_MPL_METAFUNCTION_MAX_ARITY, args) \ + /**/ + +# define AUX_BIND_PARAMS(param) \ + BOOST_MPL_PP_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + ) \ + /**/ + +# define AUX_BIND_DEFAULT_PARAMS(param, value) \ + BOOST_MPL_PP_DEFAULT_PARAMS( \ + BOOST_MPL_METAFUNCTION_MAX_ARITY \ + , param \ + , value \ + ) \ + /**/ + +# define AUX_BIND_N_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_MPL_PP_PARAMS(n, param) \ + /**/ + +# define AUX_BIND_N_SPEC_PARAMS(n, param, def) \ + BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(BOOST_MPL_PP_SUB(BOOST_MPL_METAFUNCTION_MAX_ARITY,n)) \ + BOOST_MPL_PP_ENUM( \ + BOOST_MPL_PP_SUB(BOOST_MPL_METAFUNCTION_MAX_ARITY,n) \ + , def \ + ) \ + /**/ + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename T, AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg +{ + typedef T type; +}; + +# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) + +template< + typename T + , typename Arg + > +struct replace_unnamed_arg +{ + typedef Arg next_arg; + typedef T type; +}; + +template< + typename Arg + > +struct replace_unnamed_arg< arg<-1>,Arg > +{ + typedef typename Arg::next next_arg; + typedef Arg type; +}; + +# endif // BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT + +#else + +// agurt, 15/jan/02: it's not a intended to be used as a function class, and +// MSVC6.5 has problems with 'apply' name here (the code compiles, but doesn't +// work), so i went with the 'result_' here, and in all other similar cases +template< bool > +struct resolve_arg_impl +{ + template< typename T, AUX_BIND_PARAMS(typename U) > struct result_ + { + typedef T type; + }; +}; + +template<> +struct resolve_arg_impl +{ + template< typename T, AUX_BIND_PARAMS(typename U) > struct result_ + { + typedef typename AUX_APPLY(( + T + , AUX_BIND_PARAMS(U) + ))::type type; + }; +}; + +// for 'resolve_bind_arg' +template< typename T > struct is_bind_template; + +template< + typename T, AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg + : resolve_arg_impl< is_bind_template::value > + ::template result_< T,AUX_BIND_PARAMS(U) > +{ +}; + +# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) + +template< typename T > +struct replace_unnamed_arg_impl +{ + template< typename Arg > struct result_ + { + typedef Arg next_arg; + typedef T type; + }; +}; + +template<> +struct replace_unnamed_arg_impl< arg<-1> > +{ + template< typename Arg > struct result_ + { + typedef typename Arg::next next_arg; + typedef Arg type; + }; +}; + +template< typename T, typename Arg > +struct replace_unnamed_arg + : replace_unnamed_arg_impl::template result_ +{ +}; + +# endif // BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux + +// forward declaration +template< + typename F, AUX_BIND_DEFAULT_PARAMS(typename T, void_) + > +struct bind; + +// fwd, for 'resolve_bind_arg'/'is_bind_template' specializations +template< typename F, typename T > struct bind1st; +template< typename F, typename T > struct bind2nd; + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +template< + int N, AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< arg,AUX_BIND_PARAMS(U) > +{ + typedef typename AUX_APPLY((arg, AUX_BIND_PARAMS(U)))::type type; +}; + +template< + typename F, AUX_BIND_PARAMS(typename T), AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< bind,AUX_BIND_PARAMS(U) > +{ + typedef bind f_; + typedef typename AUX_APPLY((f_, AUX_BIND_PARAMS(U)))::type type; +}; + +template< + typename F, typename T, AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< bind1st, AUX_BIND_PARAMS(U) > +{ + typedef bind1st f_; + typedef typename AUX_APPLY((f_, AUX_BIND_PARAMS(U)))::type type; +}; + +template< + typename F, typename T, AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< bind2nd, AUX_BIND_PARAMS(U) > +{ + typedef bind2nd f_; + typedef typename AUX_APPLY((f_, AUX_BIND_PARAMS(U)))::type type; +}; + +#else +// agurt, 10/mar/02: the forward declaration has to appear before any of +// 'is_bind_helper' overloads, otherwise MSVC6.5 issues an ICE on it +template< int > struct bind_impl_chooser; + +aux::no_tag is_bind_helper(...); +template< typename T > aux::no_tag is_bind_helper(protect*); + +// overload for "main" form +// agurt, 15/mar/02: MSVC 6.5 fails to properly resolve the overload +// in case if we use 'aux::type_wrapper< bind<...> >' here, and all +// 'bind' instantiations form a complete type anyway +template< + typename F, AUX_BIND_PARAMS(typename T) + > +aux::yes_tag is_bind_helper(bind*); + +template< int N > +aux::yes_tag is_bind_helper(arg*); + +template< typename F, typename T > aux::yes_tag is_bind_helper(bind1st*); +template< typename F, typename T > aux::yes_tag is_bind_helper(bind2nd*); + +template< typename T > struct is_bind_template +{ + BOOST_STATIC_CONSTANT(bool, value = + sizeof(aux::is_bind_helper(static_cast(0))) + == sizeof(aux::yes_tag) + ); +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +// MWCW/Borland workaround + +template< + typename F, AUX_BIND_PARAMS(typename T), int N + > +struct arity< bind,N > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; + +template< typename F, typename T, int N > +struct arity< bind1st,N > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; + +template< typename F, typename T, int N > +struct arity< bind2nd,N > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; + +#endif // BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES + +} // namespace aux + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/bind.hpp")) +#include BOOST_PP_ITERATE() + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && !defined(BOOST_MPL_NO_BIND_TEMPLATE) + +namespace aux { +// apply_count_args +#define BOOST_MPL_AUX_COUNT_ARGS_PREFIX bind +#define BOOST_MPL_AUX_COUNT_ARGS_DEFAULT void_ +#define BOOST_MPL_AUX_COUNT_ARGS_ARITY BOOST_MPL_METAFUNCTION_MAX_ARITY +#include "boost/mpl/aux_/count_args.hpp" +} + +// bind +template< + typename F, AUX_BIND_PARAMS(typename T) + > +struct bind + : aux::bind_impl_chooser< + aux::bind_count_args::value + >::template result_< F,AUX_BIND_PARAMS(T) >::type +{ +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + // && !defined(BOOST_MPL_NO_BIND_TEMPLATE) + +// bind1st/bind2nd, lightweight, for simple cases/backward compatibility +template< typename F, typename T > +struct bind1st +{ + template< + typename U BOOST_MPL_PP_DEF_PARAMS_TAIL(1, typename U) + > + struct apply + : BOOST_MPL_AUX_APPLY2(F,T,U) + { + }; +}; + +template< typename F, typename T > +struct bind2nd +{ + template< + typename U BOOST_MPL_PP_DEF_PARAMS_TAIL(1, typename U) + > + struct apply + : BOOST_MPL_AUX_APPLY2(F,U,T) + { + }; +}; + +# undef AUX_BIND_N_SPEC_PARAMS +# undef AUX_BIND_N_PARAMS +# undef AUX_BIND_DEFAULT_PARAMS +# undef AUX_BIND_PARAMS +# undef AUX_APPLY + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_BIND_HPP_INCLUDED + +///// iteration, depth == 1 + +#elif BOOST_PP_ITERATION_DEPTH() == 1 + +# define i BOOST_PP_FRAME_ITERATION(1) + +template< + typename F AUX_BIND_N_PARAMS(i, typename T) + > +struct BOOST_PP_CAT(bind,i) +{ + template< + AUX_BIND_DEFAULT_PARAMS(typename U, void_) + > + struct apply + { + private: +# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) + + typedef aux::replace_unnamed_arg< F,arg<1> > r0; + typedef typename r0::type a0; + typedef typename r0::next_arg n1; + typedef typename aux::resolve_bind_arg::type f_; + //: +# else + typedef typename aux::resolve_bind_arg::type f_; + +# endif // BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT + +# define BOOST_PP_ITERATION_PARAMS_2 (3,(1, i, "boost/mpl/bind.hpp")) +# include BOOST_PP_ITERATE() + + public: + typedef typename BOOST_MPL_AUX_APPLY( + i + , (f_ AUX_BIND_N_PARAMS(i,t)) + )::type type; + }; +}; + + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + typename F AUX_BIND_N_PARAMS(i, typename T), AUX_BIND_PARAMS(typename U) + > +struct resolve_bind_arg< + BOOST_PP_CAT(bind,i),AUX_BIND_PARAMS(U) + > +{ + typedef BOOST_PP_CAT(bind,i) f_; + typedef typename AUX_APPLY((f_, AUX_BIND_PARAMS(U)))::type type; +}; + +#else + +template< + typename F AUX_BIND_N_PARAMS(i, typename T) + > +aux::yes_tag +is_bind_helper(BOOST_PP_CAT(bind,i)*); + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + + +// MWCW/Borland workaround +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +template< + typename F AUX_BIND_N_PARAMS(i, typename T), int N + > +struct arity< + BOOST_PP_CAT(bind,i), N + > +{ + BOOST_STATIC_CONSTANT(int + , value = BOOST_MPL_METAFUNCTION_MAX_ARITY + ); +}; +#endif + +} // namespace aux + + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i == BOOST_MPL_METAFUNCTION_MAX_ARITY + +//: primary template (not a specialization!) +template< + typename F AUX_BIND_N_PARAMS(i, typename T) + > +struct bind + : BOOST_PP_CAT(bind,i) +{ +}; + +#else + +template< + typename F AUX_BIND_N_PARAMS(i, typename T) + > +struct bind< F AUX_BIND_N_SPEC_PARAMS(i, T, void_) > + : BOOST_PP_CAT(bind,i) +{ +}; + +#endif // i == BOOST_MPL_METAFUNCTION_MAX_ARITY + +# else + +namespace aux { + +template<> +struct bind_impl_chooser +{ + template< + typename F, AUX_BIND_PARAMS(typename T) + > + struct result_ + { + typedef BOOST_PP_CAT(bind,i)< F AUX_BIND_N_PARAMS(i,T) > type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef i + +///// iteration, depth == 2 + +#elif BOOST_PP_ITERATION_DEPTH() == 2 + +# define j BOOST_PP_FRAME_ITERATION(2) +# if !defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) + + typedef aux::replace_unnamed_arg< BOOST_PP_CAT(T,j),BOOST_PP_CAT(n,j) > BOOST_PP_CAT(r,j); + typedef typename BOOST_PP_CAT(r,j)::type BOOST_PP_CAT(a,j); + typedef typename BOOST_PP_CAT(r,j)::next_arg BOOST_PP_CAT(n,BOOST_PP_INC(j)); + typedef typename aux::resolve_bind_arg::type BOOST_PP_CAT(t,j); + //: +# else + typedef typename aux::resolve_bind_arg< BOOST_PP_CAT(T,j),AUX_BIND_PARAMS(U)>::type BOOST_PP_CAT(t,j); + +# endif +# undef j + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/bool_c.hpp b/include/boost/mpl/bool_c.hpp new file mode 100644 index 0000000..272d584 --- /dev/null +++ b/include/boost/mpl/bool_c.hpp @@ -0,0 +1,40 @@ +//----------------------------------------------------------------------------- +// boost mpl/bool_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_BOOL_C_HPP_INCLUDED +#define BOOST_MPL_BOOL_C_HPP_INCLUDED + +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< bool C > struct bool_c +{ + BOOST_STATIC_CONSTANT(bool, value = C); + typedef bool_c type; + typedef bool value_type; + operator bool() const { return this->value; } +}; + +// shorcuts +typedef bool_c true_c; +typedef bool_c false_c; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_BOOL_C_HPP_INCLUDED diff --git a/include/boost/mpl/clear.hpp b/include/boost/mpl/clear.hpp new file mode 100644 index 0000000..e74a897 --- /dev/null +++ b/include/boost/mpl/clear.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/clear.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_CLEAR_HPP_INCLUDED +#define BOOST_MPL_CLEAR_HPP_INCLUDED + +#include "boost/mpl/clear_fwd.hpp" +#include "boost/mpl/aux_/clear_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct clear + : clear_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,clear,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, clear) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_CLEAR_HPP_INCLUDED diff --git a/include/boost/mpl/clear_fwd.hpp b/include/boost/mpl/clear_fwd.hpp new file mode 100644 index 0000000..47648cb --- /dev/null +++ b/include/boost/mpl/clear_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/clear_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_CLEAR_FWD_HPP_INCLUDED +#define BOOST_MPL_CLEAR_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct clear_traits; +template< typename Sequence > struct clear; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_CLEAR_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/comparison.hpp b/include/boost/mpl/comparison.hpp new file mode 100644 index 0000000..dbe5056 --- /dev/null +++ b/include/boost/mpl/comparison.hpp @@ -0,0 +1,27 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_HPP_INCLUDED + +#include "boost/mpl/comparison/equal_to.hpp" +#include "boost/mpl/comparison/not_equal_to.hpp" +#include "boost/mpl/comparison/less.hpp" +#include "boost/mpl/comparison/greater.hpp" +#include "boost/mpl/comparison/less_equal.hpp" +#include "boost/mpl/comparison/greater_equal.hpp" + +#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/equal_to.hpp b/include/boost/mpl/comparison/equal_to.hpp new file mode 100644 index 0000000..694d49d --- /dev/null +++ b/include/boost/mpl/comparison/equal_to.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/equal_to.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct equal_to +{ + BOOST_STATIC_CONSTANT(bool, value = ( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + == BOOST_MPL_AUX_VALUE_WKND(T2)::value + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + == BOOST_MPL_AUX_VALUE_WKND(T2)::value + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal_to,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, equal_to) + +template< long N > +struct eq +{ + template< typename T > struct apply +#if !defined(__BORLANDC__) + : equal_to< T,integral_c > + { +#else + { + typedef typename equal_to< T,integral_c >::type type; +#endif + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/greater.hpp b/include/boost/mpl/comparison/greater.hpp new file mode 100644 index 0000000..2bb1fae --- /dev/null +++ b/include/boost/mpl/comparison/greater.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/greater.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct greater +{ + BOOST_STATIC_CONSTANT(bool, value = ( + (BOOST_MPL_AUX_VALUE_WKND(T1)::value) + > (BOOST_MPL_AUX_VALUE_WKND(T2)::value) + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + (BOOST_MPL_AUX_VALUE_WKND(T1)::value) + > (BOOST_MPL_AUX_VALUE_WKND(T2)::value) + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,greater,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, greater) + +template< long N > +struct gt +{ + template< typename T > struct apply +#if !defined(__BORLANDC__) + : greater< T,integral_c > + { +#else + { + typedef typename greater< T,integral_c >::type type; +#endif + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/greater_equal.hpp b/include/boost/mpl/comparison/greater_equal.hpp new file mode 100644 index 0000000..c293e5b --- /dev/null +++ b/include/boost/mpl/comparison/greater_equal.hpp @@ -0,0 +1,67 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/greater_equal.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct greater_equal +{ + BOOST_STATIC_CONSTANT(bool, value = ( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + >= BOOST_MPL_AUX_VALUE_WKND(T2)::value + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + >= BOOST_MPL_AUX_VALUE_WKND(T2)::value + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,greater_equal,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, greater_equal) + +template< long N > +struct ge +{ + template< typename T > struct apply + : greater_equal< T,integral_c > + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/less.hpp b/include/boost/mpl/comparison/less.hpp new file mode 100644 index 0000000..3893ed7 --- /dev/null +++ b/include/boost/mpl/comparison/less.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/less.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct less +{ + BOOST_STATIC_CONSTANT(bool, value = ( + (BOOST_MPL_AUX_VALUE_WKND(T1)::value) + < (BOOST_MPL_AUX_VALUE_WKND(T2)::value) + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + (BOOST_MPL_AUX_VALUE_WKND(T1)::value) + < (BOOST_MPL_AUX_VALUE_WKND(T2)::value) + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,less,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, less) + +template< long N > +struct lt +{ + template< typename T > struct apply +#if !defined(__BORLANDC__) + : less< T,integral_c > + { +#else + { + typedef typename less< T,integral_c >::type type; +#endif + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/less_equal.hpp b/include/boost/mpl/comparison/less_equal.hpp new file mode 100644 index 0000000..ae4235f --- /dev/null +++ b/include/boost/mpl/comparison/less_equal.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/less_equal.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct less_equal +{ + BOOST_STATIC_CONSTANT(bool, value = ( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + <= BOOST_MPL_AUX_VALUE_WKND(T2)::value + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + <= BOOST_MPL_AUX_VALUE_WKND(T2)::value + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,less_equal,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, less_equal) + +template< long N > +struct le +{ + template< typename T > struct apply +#if !defined(__BORLANDC__) + : less_equal< T,integral_c > + { +#else + { + typedef typename less_equal< T,integral_c >::type type; +#endif + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED diff --git a/include/boost/mpl/comparison/not_equal_to.hpp b/include/boost/mpl/comparison/not_equal_to.hpp new file mode 100644 index 0000000..7a6d72a --- /dev/null +++ b/include/boost/mpl/comparison/not_equal_to.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/comparison/not_equal_to.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED +#define BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct not_equal_to +{ + BOOST_STATIC_CONSTANT(bool, value = ( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + != BOOST_MPL_AUX_VALUE_WKND(T2)::value + )); + +#if !defined(__BORLANDC__) + typedef bool_c type; +#else + typedef bool_c<( + BOOST_MPL_AUX_VALUE_WKND(T1)::value + != BOOST_MPL_AUX_VALUE_WKND(T2)::value + )> type; +#endif + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,not_equal_to,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, not_equal_to) + +template< long N > +struct ne +{ + template< typename T > struct apply +#if !defined(__BORLANDC__) + : not_equal_to< T,integral_c > + { +#else + { + typedef typename not_equal_to< T,integral_c >::type type; +#endif + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED diff --git a/include/boost/mpl/compose.hpp b/include/boost/mpl/compose.hpp new file mode 100644 index 0000000..a94a062 --- /dev/null +++ b/include/boost/mpl/compose.hpp @@ -0,0 +1,27 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_HPP_INCLUDED +#define BOOST_MPL_COMPOSE_HPP_INCLUDED + +#include "boost/mpl/compose/f_gx.hpp" +#include "boost/mpl/compose/f_gx_hx.hpp" +#include "boost/mpl/compose/f_gx_hy.hpp" +#include "boost/mpl/compose/f_gxy.hpp" +#include "boost/mpl/compose/f_x_hy.hpp" +#include "boost/mpl/compose/f_x_x.hpp" + +#endif // BOOST_MPL_COMPOSE_HPP_INCLUDED diff --git a/include/boost/mpl/compose/f_gx.hpp b/include/boost/mpl/compose/f_gx.hpp new file mode 100644 index 0000000..a6e7012 --- /dev/null +++ b/include/boost/mpl/compose/f_gx.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED +#define BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename G + , typename X + > +struct f_gx +{ + private: + typedef typename apply1::type P; + + public: + typedef apply1 type; +}; + +} // namespace aux + +template< + typename F + , typename G + > +struct compose_f_gx +{ + template< typename X > struct apply + : aux::f_gx::type + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gx) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED diff --git a/include/boost/mpl/compose/f_gx_hx.hpp b/include/boost/mpl/compose/f_gx_hx.hpp new file mode 100644 index 0000000..52f5baa --- /dev/null +++ b/include/boost/mpl/compose/f_gx_hx.hpp @@ -0,0 +1,64 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose/f_gx_hx.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED +#define BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename G + , typename H + , typename X + > +struct f_gx_hx +{ + private: + typedef typename apply1::type P1; + typedef typename apply1::type P2; + + public: + typedef apply2 type; +}; + +} // namespace aux + +template< + typename F + , typename G + , typename H + > +struct compose_f_gx_hx +{ + template< typename X > struct apply + : aux::f_gx_hx::type + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3,compose_f_gx_hx) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED diff --git a/include/boost/mpl/compose/f_gx_hy.hpp b/include/boost/mpl/compose/f_gx_hy.hpp new file mode 100644 index 0000000..6150e5c --- /dev/null +++ b/include/boost/mpl/compose/f_gx_hy.hpp @@ -0,0 +1,65 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose/f_gx_hy.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED +#define BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename G + , typename H + , typename X + , typename Y + > +struct f_gx_hy +{ + private: + typedef typename apply1::type P1; + typedef typename apply1::type P2; + + public: + typedef apply2 type; +}; + +} // namespace aux + +template< + typename F + , typename G + , typename H + > +struct compose_f_gx_hy +{ + template< typename X, typename Y > struct apply + : aux::f_gx_hy + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3,compose_f_gx_hy) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED diff --git a/include/boost/mpl/compose/f_gxy.hpp b/include/boost/mpl/compose/f_gxy.hpp new file mode 100644 index 0000000..35891e3 --- /dev/null +++ b/include/boost/mpl/compose/f_gxy.hpp @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose/f_gxy.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED +#define BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename G + , typename X + , typename Y + > +struct f_gxy +{ + private: + typedef typename apply2::type P; + + public: + typedef apply1 type; +}; + +} // namespace aux + +template< + typename F + , typename G + > +struct compose_f_gxy +{ + template< typename X, typename Y > struct apply + : aux::f_gxy::type + { + }; +}; + +template< + typename F + , typename G + > +struct compose_f_gyx +{ + template< typename X, typename Y > struct apply + : aux::f_gxy::type + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gxy) +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gyx) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED diff --git a/include/boost/mpl/compose/f_x_hy.hpp b/include/boost/mpl/compose/f_x_hy.hpp new file mode 100644 index 0000000..218c512 --- /dev/null +++ b/include/boost/mpl/compose/f_x_hy.hpp @@ -0,0 +1,62 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose/f_x_hy.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED +#define BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename H + , typename X + , typename Y + > +struct f_x_hy +{ + private: + typedef typename apply1::type P2; + + public: + typedef apply2 type; +}; + +} // namespace aux + +template< + typename F + , typename H + > +struct compose_f_x_hy +{ + template< typename X, typename Y > struct apply + : aux::f_x_hy::type + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_x_hy) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED diff --git a/include/boost/mpl/compose/f_x_x.hpp b/include/boost/mpl/compose/f_x_x.hpp new file mode 100644 index 0000000..c316886 --- /dev/null +++ b/include/boost/mpl/compose/f_x_x.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/compose/f_x_x.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED +#define BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED + +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename F + , typename X + > +struct f_x_x +{ + typedef apply2 type; +}; + +} // namespace aux + +template< + typename F + > +struct compose_f_x_x +{ + template< typename X > struct apply + : aux::f_x_x::type + { + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,compose_f_x_x) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED diff --git a/include/boost/mpl/contains.hpp b/include/boost/mpl/contains.hpp new file mode 100644 index 0000000..828076c --- /dev/null +++ b/include/boost/mpl/contains.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/contains.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2002 +// Eric Friedman +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_CONTAINS_HPP_INCLUDED +#define BOOST_MPL_CONTAINS_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/find.hpp" +#include "boost/mpl/logical_not.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct contains + : logical_not< is_same< + typename find::type + , typename end::type + > > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,contains,(Sequence,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, contains) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_CONTAINS_HPP_INCLUDED diff --git a/include/boost/mpl/copy.hpp b/include/boost/mpl/copy.hpp new file mode 100644 index 0000000..53004bf --- /dev/null +++ b/include/boost/mpl/copy.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/copy.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COPY_HPP_INCLUDED +#define BOOST_MPL_COPY_HPP_INCLUDED + +#include "boost/mpl/fold.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BinaryOp) + > +struct copy + : fold< Sequence,State,BinaryOp > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(3, copy) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COPY_HPP_INCLUDED diff --git a/include/boost/mpl/copy_backward.hpp b/include/boost/mpl/copy_backward.hpp new file mode 100644 index 0000000..c11be0e --- /dev/null +++ b/include/boost/mpl/copy_backward.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/copy_backward.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COPY_BACKWARD_HPP_INCLUDED +#define BOOST_MPL_COPY_BACKWARD_HPP_INCLUDED + +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BinaryOp) + > +struct copy_backward + : fold_backward< Sequence,State,BinaryOp > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(3, copy_backward) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COPY_BACKWARD_HPP_INCLUDED diff --git a/include/boost/mpl/copy_backward_if.hpp b/include/boost/mpl/copy_backward_if.hpp new file mode 100644 index 0000000..407e1ab --- /dev/null +++ b/include/boost/mpl/copy_backward_if.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/copy_backward_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COPY_BACKWARD_IF_HPP_INCLUDED +#define BOOST_MPL_COPY_BACKWARD_IF_HPP_INCLUDED + +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/aux_/copy_if_op.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BinaryOp) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct copy_backward_if +{ + private: + typedef typename lambda::type op_; + typedef typename lambda::type pred_; + + public: + typedef typename fold_backward< + Sequence + , State + , protect< aux::copy_if_op > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(4, copy_backward_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COPY_BACKWARD_IF_HPP_INCLUDED diff --git a/include/boost/mpl/copy_if.hpp b/include/boost/mpl/copy_if.hpp new file mode 100644 index 0000000..de02c31 --- /dev/null +++ b/include/boost/mpl/copy_if.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/copy_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COPY_IF_HPP_INCLUDED +#define BOOST_MPL_COPY_IF_HPP_INCLUDED + +#include "boost/mpl/fold.hpp" +#include "boost/mpl/aux_/copy_if_op.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BinaryOp) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct copy_if +{ + private: + typedef typename lambda::type op_; + typedef typename lambda::type pred_; + + public: + typedef typename fold< + Sequence + , State + , protect< aux::copy_if_op > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(4, copy_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COPY_IF_HPP_INCLUDED diff --git a/include/boost/mpl/count.hpp b/include/boost/mpl/count.hpp new file mode 100644 index 0000000..589fdcb --- /dev/null +++ b/include/boost/mpl/count.hpp @@ -0,0 +1,43 @@ +//----------------------------------------------------------------------------- +// boost mpl/count.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COUNT_HPP_INCLUDED +#define BOOST_MPL_COUNT_HPP_INCLUDED + +#include "boost/mpl/count_if.hpp" +#include "boost/mpl/same_as.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct count + : count_if< Sequence,same_as > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count,(Sequence,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, count) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COUNT_HPP_INCLUDED diff --git a/include/boost/mpl/count_if.hpp b/include/boost/mpl/count_if.hpp new file mode 100644 index 0000000..48289c2 --- /dev/null +++ b/include/boost/mpl/count_if.hpp @@ -0,0 +1,79 @@ +//----------------------------------------------------------------------------- +// boost mpl/count_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_COUNT_IF_HPP_INCLUDED +#define BOOST_MPL_COUNT_IF_HPP_INCLUDED + +#include "boost/mpl/fold.hpp" +#include "boost/mpl/next.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/identity.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Predicate > +struct next_if +{ + template< + typename N + , typename T + > + struct apply + { + typedef typename apply_if< + typename apply1::type + , next + , identity + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct count_if +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename fold< + Sequence + , integral_c + , protect< aux::next_if > + >::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,count_if,(Sequence,Predicate)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, count_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_COUNT_IF_HPP_INCLUDED diff --git a/include/boost/mpl/distance.hpp b/include/boost/mpl/distance.hpp new file mode 100644 index 0000000..c03ff97 --- /dev/null +++ b/include/boost/mpl/distance.hpp @@ -0,0 +1,119 @@ +//----------------------------------------------------------------------------- +// boost mpl/distance.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_DISTANCE_HPP_INCLUDED +#define BOOST_MPL_DISTANCE_HPP_INCLUDED + +#include "boost/mpl/aux_/iter_distance.hpp" +#include "boost/mpl/aux_/iterator_category.hpp" +#include "boost/mpl/iterator_tag.hpp" +#include "boost/mpl/iter_fold.hpp" +#include "boost/mpl/iterator_range.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/next.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { + +// forward/bidirectional iterators +template< typename Category, typename First, typename Last > +struct distance_impl + : iter_fold< + iterator_range + , integral_c + , next<> + > +{ +}; + +template< typename First, typename Last > +struct distance_impl + : aux::iter_distance +{ +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last) + > +struct distance + : aux::distance_impl< + typename BOOST_MPL_AUX_ITERATOR_CATEGORY(First) + , First + , Last + > +{ +}; + +#else + +namespace aux { + +// forward/bidirectional iterators +template< typename Category > +struct distance_impl +{ + template< typename First, typename Last > struct result_ + : iter_fold< + iterator_range + , integral_c + , next<> + > + { + }; +}; + +template<> +struct distance_impl +{ + template< typename First, typename Last > struct result_ + : aux::iter_distance + { + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last) + > +struct distance +#if !defined(BOOST_MSVC) || BOOST_MSVC != 1300 + : aux::distance_impl< typename BOOST_MPL_AUX_ITERATOR_CATEGORY(First) > +#else + : aux::distance_impl< fwd_iter_tag_ > +#endif + ::template result_ +{ +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_MPL_AUX_VOID_SPEC(2, distance) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_DISTANCE_HPP_INCLUDED diff --git a/include/boost/mpl/empty.hpp b/include/boost/mpl/empty.hpp new file mode 100644 index 0000000..252a7df --- /dev/null +++ b/include/boost/mpl/empty.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/empty.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_EMPTY_HPP_INCLUDED +#define BOOST_MPL_EMPTY_HPP_INCLUDED + +#include "boost/mpl/empty_fwd.hpp" +#include "boost/mpl/aux_/empty_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct empty + : empty_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,empty,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, empty) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_EMPTY_HPP_INCLUDED diff --git a/include/boost/mpl/empty_fwd.hpp b/include/boost/mpl/empty_fwd.hpp new file mode 100644 index 0000000..be3a427 --- /dev/null +++ b/include/boost/mpl/empty_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/empty_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_EMPTY_FWD_HPP_INCLUDED +#define BOOST_MPL_EMPTY_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct empty_traits; +template< typename Sequence > struct empty; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_EMPTY_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/equal.hpp b/include/boost/mpl/equal.hpp new file mode 100644 index 0000000..3a3dd6a --- /dev/null +++ b/include/boost/mpl/equal.hpp @@ -0,0 +1,105 @@ +//----------------------------------------------------------------------------- +// boost mpl/equal.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_EQUAL_HPP_INCLUDED +#define BOOST_MPL_EQUAL_HPP_INCLUDED + +#include "boost/mpl/aux_/iter_fold_if_impl.hpp" +#include "boost/mpl/aux_/iter_apply.hpp" +#include "boost/mpl/logical/and.hpp" +#include "boost/mpl/logical/not.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/next.hpp" +#include "boost/mpl/always.hpp" +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/bind.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename Predicate + , typename LastIterator1 + , typename LastIterator2 + > +struct equal_pred +{ + template< + typename Iterator2 + , typename Iterator1 + > + struct apply + { + typedef typename logical_and< + logical_not< is_same > + , logical_not< is_same > + , aux::iter_apply2 + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence2) + , typename Predicate = is_same<_,_> + > +struct equal +{ + private: + typedef typename begin::type first1_; + typedef typename begin::type first2_; + typedef typename end::type last1_; + typedef typename end::type last2_; + typedef typename lambda::type pred_; + + typedef aux::iter_fold_if_impl< + first1_ + , first2_ + , next<> + , aux::equal_pred + , void_ + , always + > fold_; + + typedef typename fold_::iterator iter1_; + typedef typename fold_::state iter2_; + typedef logical_and< + is_same + , is_same + > result_; + + public: + typedef typename result_::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,equal,(Sequence1,Sequence2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, equal) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_EQUAL_HPP_INCLUDED diff --git a/include/boost/mpl/erase.hpp b/include/boost/mpl/erase.hpp new file mode 100644 index 0000000..97fea02 --- /dev/null +++ b/include/boost/mpl/erase.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/erase.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ERASE_HPP_INCLUDED +#define BOOST_MPL_ERASE_HPP_INCLUDED + +#include "boost/mpl/erase_fwd.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/aux_/erase_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/mpl/aux_/config/msvc_typename.hpp" + +namespace boost { +namespace mpl { + +namespace aux { +template< typename T > struct erase_param +{ + typedef typename BOOST_MPL_AUX_NEXT(T) type; +}; + +template<> struct erase_param +{ + typedef void_ type; +}; +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) + , typename Last = BOOST_MSVC_TYPENAME aux::erase_param::type + > +struct erase + : erase_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence,First,Last > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,erase,(Sequence,First,Last)) +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,3,erase) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ERASE_HPP_INCLUDED diff --git a/include/boost/mpl/erase_fwd.hpp b/include/boost/mpl/erase_fwd.hpp new file mode 100644 index 0000000..ad34ce4 --- /dev/null +++ b/include/boost/mpl/erase_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/erase_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ERASE_FWD_HPP_INCLUDED +#define BOOST_MPL_ERASE_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct erase_traits; +template< typename Sequence, typename First, typename Last > struct erase; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ERASE_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/filter_view.hpp b/include/boost/mpl/filter_view.hpp new file mode 100644 index 0000000..ff1edbe --- /dev/null +++ b/include/boost/mpl/filter_view.hpp @@ -0,0 +1,96 @@ +//----------------------------------------------------------------------------- +// boost mpl/filter_view.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FILTER_VIEW_HPP_INCLUDED +#define BOOST_MPL_FILTER_VIEW_HPP_INCLUDED + +#include "boost/mpl/find_if.hpp" +#include "boost/mpl/iterator_range.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +// forward declaration for next_filter_iter +template< typename Iterator, typename LastIterator, typename F > +struct filter_iter; + +namespace aux { +template< + typename Iterator + , typename LastIterator + , typename F + > +struct next_filter_iter +{ + private: + typedef typename find_if< + iterator_range + , F + >::type base_iter_; + + public: + typedef filter_iter type; +}; +} // namespace aux + +template< + typename Iterator + , typename LastIterator + , typename F + > +struct filter_iter +{ + typedef Iterator base; + typedef typename base::category category; + typedef typename aux::next_filter_iter< + typename base::next + , LastIterator + , F + >::type next; + + typedef typename base::type type; +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(F) + > +struct filter_view +{ + private: + typedef typename lambda::type f_; + typedef typename begin::type first_; + typedef typename end::type last_; + + public: + struct tag; + typedef filter_view type; + typedef typename aux::next_filter_iter< first_,last_,f_ >::type begin; + typedef filter_iter< last_,last_,f_ > end; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3,filter_iter) +BOOST_MPL_AUX_VOID_SPEC(2, filter_view) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FILTER_VIEW_HPP_INCLUDED diff --git a/include/boost/mpl/find.hpp b/include/boost/mpl/find.hpp new file mode 100644 index 0000000..224d77c --- /dev/null +++ b/include/boost/mpl/find.hpp @@ -0,0 +1,43 @@ +//----------------------------------------------------------------------------- +// boost mpl/find.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FIND_HPP_INCLUDED +#define BOOST_MPL_FIND_HPP_INCLUDED + +#include "boost/mpl/find_if.hpp" +#include "boost/mpl/same_as.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct find + : find_if< Sequence,same_as > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find,(Sequence,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, find) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FIND_HPP_INCLUDED diff --git a/include/boost/mpl/find_if.hpp b/include/boost/mpl/find_if.hpp new file mode 100644 index 0000000..a036749 --- /dev/null +++ b/include/boost/mpl/find_if.hpp @@ -0,0 +1,86 @@ +//----------------------------------------------------------------------------- +// boost mpl/find_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED +#define BOOST_MPL_FIND_IF_HPP_INCLUDED + +#include "boost/mpl/aux_/iter_fold_if_impl.hpp" +#include "boost/mpl/aux_/iter_apply.hpp" +#include "boost/mpl/logical/or.hpp" +#include "boost/mpl/logical/not.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/always.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/bind.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename LastIterator > +struct find_if_pred +{ + template< + typename Predicate + , typename Iterator + > + struct apply + { + typedef typename logical_not< logical_or< + is_same + , aux::iter_apply1 + > >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct find_if +{ + private: + typedef typename begin::type first_; + typedef typename end::type last_; + typedef typename lambda::type pred_; + + public: + typedef typename aux::iter_fold_if_impl< + first_ + , pred_ + , arg<1> + , aux::find_if_pred + , void + , always + >::iterator type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2,find_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FIND_IF_HPP_INCLUDED diff --git a/include/boost/mpl/fold.hpp b/include/boost/mpl/fold.hpp new file mode 100644 index 0000000..916642e --- /dev/null +++ b/include/boost/mpl/fold.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/fold.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy, David Abrahams +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FOLD_HPP_INCLUDED +#define BOOST_MPL_FOLD_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/O1_size.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/fold_impl.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(ForwardOp) + > +struct fold +{ + typedef typename aux::fold_impl< + ::boost::mpl::O1_size::value + , typename begin::type + , typename end::type + , State + , typename lambda::type + >::state type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold,(Sequence,State,ForwardOp)) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, fold) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FOLD_HPP_INCLUDED diff --git a/include/boost/mpl/fold_backward.hpp b/include/boost/mpl/fold_backward.hpp new file mode 100644 index 0000000..0a9ad40 --- /dev/null +++ b/include/boost/mpl/fold_backward.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/fold_backward.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy, David Abrahams +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FOLD_BACKWARD_HPP_INCLUDED +#define BOOST_MPL_FOLD_BACKWARD_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/O1_size.hpp" +#include "boost/mpl/arg.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/fold_backward_impl.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BackwardOp) + , typename ForwardOp = arg<1> + > +struct fold_backward +{ + typedef typename aux::fold_backward_impl< + ::boost::mpl::O1_size::value + , typename begin::type + , typename end::type + , State + , typename lambda::type + , typename lambda::type + >::state type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,fold_backward,(Sequence,State,BackwardOp)) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, fold_backward) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FOLD_BACKWARD_HPP_INCLUDED diff --git a/include/boost/mpl/for_each.hpp b/include/boost/mpl/for_each.hpp new file mode 100644 index 0000000..d1a769f --- /dev/null +++ b/include/boost/mpl/for_each.hpp @@ -0,0 +1,102 @@ +//----------------------------------------------------------------------------- +// boost mpl/for_each.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FOR_EACH_HPP_INCLUDED +#define BOOST_MPL_FOR_EACH_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/type_traits/is_same.hpp" +#include + +namespace boost { +namespace mpl { + +namespace aux { + +template< + typename Iterator + , typename LastIterator + , typename TransformFunc + , typename F + > +inline +void for_each_impl( + F + , true_c +#if defined(BOOST_MSVC) && BOOST_MSVC < 1301 + , Iterator* = 0 + , LastIterator* = 0 + , TransformFunc* = 0 +#endif + ) +{ +} + +// agurt, 17/mar/02: pointer default parameters are necessary to workaround +// MSVC 6.5 function template signature's mangling bug +template< + typename Iterator + , typename LastIterator + , typename TransformFunc + , typename F + > +inline +void for_each_impl( + F f + , false_c +#if defined(BOOST_MSVC) && BOOST_MSVC < 1301 + , Iterator* = 0 + , LastIterator* = 0 + , TransformFunc* = 0 +#endif + ) +{ + typedef typename Iterator::type item; + typedef typename Iterator::next iter; + typedef bool_c< boost::is_same::value > is_last; + typedef typename apply1::type arg; + + // dwa 2002/9/10 -- make sure not to invoke undefined behavior + // when we pass arg. + value_initialized x; + f(get(x)); + for_each_impl< iter,LastIterator,TransformFunc >(f, is_last()); +} + +} // namespace aux + +template< + typename Sequence + , typename TransformOp + , typename F + > +inline +void for_each(F f, Sequence* = 0, TransformOp* = 0) +{ + typedef typename begin::type first; + typedef typename end::type last; + typedef typename lambda::type transform_op; + typedef bool_c< boost::is_same::value > is_last; + aux::for_each_impl< first,last,transform_op >(f, is_last()); +} + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FOR_EACH_HPP_INCLUDED diff --git a/include/boost/mpl/front.hpp b/include/boost/mpl/front.hpp new file mode 100644 index 0000000..03b5cef --- /dev/null +++ b/include/boost/mpl/front.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FRONT_HPP_INCLUDED +#define BOOST_MPL_FRONT_HPP_INCLUDED + +#include "boost/mpl/front_fwd.hpp" +#include "boost/mpl/aux_/front_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct front + : front_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,front,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, front) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/front_fwd.hpp b/include/boost/mpl/front_fwd.hpp new file mode 100644 index 0000000..ae2a047 --- /dev/null +++ b/include/boost/mpl/front_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/front_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FRONT_FWD_HPP_INCLUDED +#define BOOST_MPL_FRONT_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct front_traits; +template< typename Sequence > struct front; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FRONT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/identity.hpp b/include/boost/mpl/identity.hpp new file mode 100644 index 0000000..bebc291 --- /dev/null +++ b/include/boost/mpl/identity.hpp @@ -0,0 +1,50 @@ +//----------------------------------------------------------------------------- +// boost mpl/identity.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_IDENTITY_HPP_INCLUDED +#define BOOST_MPL_IDENTITY_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct identity +{ + typedef T type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,identity,(T)) +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct make_identity +{ + typedef identity type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,make_identity,(T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, identity) +BOOST_MPL_AUX_VOID_SPEC(1, make_identity) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_IDENTITY_HPP_INCLUDED diff --git a/include/boost/mpl/if.hpp b/include/boost/mpl/if.hpp new file mode 100644 index 0000000..bf36e09 --- /dev/null +++ b/include/boost/mpl/if.hpp @@ -0,0 +1,159 @@ +//----------------------------------------------------------------------------- +// boost/mpl/if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 Boost.org +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_IF_HPP_INCLUDED +#define BOOST_MPL_IF_HPP_INCLUDED + +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + bool C + , typename T1 + , typename T2 + > +struct if_c +{ + typedef T1 type; +}; + +template< + typename T1 + , typename T2 + > +struct if_c +{ + typedef T2 type; +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(C) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct if_ +{ + typedef typename if_c< + BOOST_MPL_AUX_VALUE_WKND(C)::value + , T1 + , T2 + >::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C,T1,T2)) +}; + +#elif defined(BOOST_MSVC) && (BOOST_MSVC <= 1200) + +// MSVC6.5-specific version + +template< + bool C + , typename T1 + , typename T2 + > +struct if_c +{ + private: + template struct answer { typedef T1 type; }; + template<> struct answer { typedef T2 type; }; + + public: + typedef typename answer< C >::type type; +}; + +// (almost) copy & paste in order to save one more +// recursively nested template instantiation to user +template< + typename C + , typename T1 + , typename T2 + > +struct if_ +{ + private: + template struct answer { typedef T1 type; }; + template<> struct answer { typedef T2 type; }; + + public: + typedef typename answer< C::value >::type type; +}; + +#else + +// no partial class template specialization + +namespace aux { + +template< bool C > +struct if_impl +{ + template< typename T1, typename T2 > struct result_ + { + typedef T1 type; + }; +}; + +template<> +struct if_impl +{ + template< typename T1, typename T2 > struct result_ + { + typedef T2 type; + }; +}; + +} // namespace aux + +template< + bool C + , typename T1 + , typename T2 + > +struct if_c +{ + typedef typename aux::if_impl< C > + ::template result_::type type; +}; + +// (almost) copy & paste in order to save one more +// recursively nested template instantiation to user +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(C) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct if_ +{ + typedef typename aux::if_impl< C::value > + ::template result_::type type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,if_,(C,T1,T2)) +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +BOOST_MPL_AUX_VOID_SPEC(3, if_) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_IF_HPP_INCLUDED diff --git a/include/boost/mpl/insert.hpp b/include/boost/mpl/insert.hpp new file mode 100644 index 0000000..64c6f56 --- /dev/null +++ b/include/boost/mpl/insert.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/insert.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INSERT_HPP_INCLUDED +#define BOOST_MPL_INSERT_HPP_INCLUDED + +#include "boost/mpl/insert_fwd.hpp" +#include "boost/mpl/aux_/insert_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Pos) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct insert + : insert_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence,Pos,T > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert,(Sequence,Pos,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, insert) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INSERT_HPP_INCLUDED diff --git a/include/boost/mpl/insert_fwd.hpp b/include/boost/mpl/insert_fwd.hpp new file mode 100644 index 0000000..5fc15ce --- /dev/null +++ b/include/boost/mpl/insert_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/insert_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INSERT_FWD_HPP_INCLUDED +#define BOOST_MPL_INSERT_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct insert_traits; +template< typename Sequence, typename Pos, typename T > struct insert; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INSERT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/insert_range.hpp b/include/boost/mpl/insert_range.hpp new file mode 100644 index 0000000..7f8cbe9 --- /dev/null +++ b/include/boost/mpl/insert_range.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/insert_range.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INSERT_RANGE_HPP_INCLUDED +#define BOOST_MPL_INSERT_RANGE_HPP_INCLUDED + +#include "boost/mpl/insert_range_fwd.hpp" +#include "boost/mpl/aux_/insert_range_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Pos) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Range) + > +struct insert_range + : insert_range_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence,Pos,Range > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,insert_range,(Sequence,Pos,Range)) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, insert_range) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INSERT_RANGE_HPP_INCLUDED diff --git a/include/boost/mpl/insert_range_fwd.hpp b/include/boost/mpl/insert_range_fwd.hpp new file mode 100644 index 0000000..01f83e2 --- /dev/null +++ b/include/boost/mpl/insert_range_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/insert_range_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED +#define BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct insert_range_traits; +template< typename Sequence, typename Pos, typename Range > struct insert_range; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INSERT_RANGE_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/int_c.hpp b/include/boost/mpl/int_c.hpp new file mode 100644 index 0000000..37cb294 --- /dev/null +++ b/include/boost/mpl/int_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/int_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INT_C_HPP_INCLUDED +#define BOOST_MPL_INT_C_HPP_INCLUDED + +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< int N > +struct int_c +{ + BOOST_STATIC_CONSTANT(int, value = N); + typedef int_c type; + typedef int value_type; + + // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), + // while some other don't like 'value + 1' (Borland) +#if !defined(__BORLANDC__) + typedef int_c next; + typedef int_c prior; +#else + typedef int_c next; + typedef int_c prior; +#endif + + operator int() const { return this->value; } +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INT_C_HPP_INCLUDED diff --git a/include/boost/mpl/integral_c.hpp b/include/boost/mpl/integral_c.hpp new file mode 100644 index 0000000..5cd3025 --- /dev/null +++ b/include/boost/mpl/integral_c.hpp @@ -0,0 +1,65 @@ +//----------------------------------------------------------------------------- +// boost/mpl/intergal_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED +#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED + +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< typename T, T N > +struct integral_c +{ + BOOST_STATIC_CONSTANT(T, value = N); + typedef integral_c type; + typedef T value_type; + + // have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC), + // while some other don't like 'value + 1' (Borland) +#if !defined(__BORLANDC__) + typedef integral_c next; + typedef integral_c prior; +#else + typedef integral_c next; + typedef integral_c prior; +#endif + + // enables uniform function call syntax for families of overloaded + // functions that return objects of both arithmetic ('int', 'long', + // 'double', etc.) and 'integral_c<..>' types (for an example, see + // "mpl/example/power.cpp") + operator T() const { return this->value; } +}; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ + && (!defined(BOOST_MSVC) || BOOST_MSVC != 1301) \ + && !defined(__BORLANDC__) +// 'bool' constant doesn't have 'next'/'prior' members +template< bool C > +struct integral_c +{ + BOOST_STATIC_CONSTANT(bool, value = C); + typedef integral_c type; + operator bool() const { return this->value; } +}; +#endif + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED diff --git a/include/boost/mpl/iter_fold.hpp b/include/boost/mpl/iter_fold.hpp new file mode 100644 index 0000000..edd155b --- /dev/null +++ b/include/boost/mpl/iter_fold.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/iter_fold.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy, David Abrahams +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITER_FOLD_HPP_INCLUDED +#define BOOST_MPL_ITER_FOLD_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/O1_size.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/iter_fold_impl.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(ForwardOp) + > +struct iter_fold +{ + typedef typename aux::iter_fold_impl< + ::boost::mpl::O1_size::value + , typename begin::type + , typename end::type + , State + , typename lambda::type + >::state type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(3,iter_fold,(Sequence,State,ForwardOp)) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, iter_fold) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITER_FOLD_HPP_INCLUDED diff --git a/include/boost/mpl/iter_fold_backward.hpp b/include/boost/mpl/iter_fold_backward.hpp new file mode 100644 index 0000000..ee5202a --- /dev/null +++ b/include/boost/mpl/iter_fold_backward.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/iter_fold_backward.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy, David Abrahams +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED +#define BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/O1_size.hpp" +#include "boost/mpl/arg.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/iter_fold_backward_impl.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(State) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(BackwardOp) + , typename ForwardOp = arg<1> + > +struct iter_fold_backward +{ + typedef typename aux::iter_fold_backward_impl< + ::boost::mpl::O1_size::value + , typename begin::type + , typename end::type + , State + , typename lambda::type + , typename lambda::type + >::state type; + + BOOST_MPL_AUX_LAMBDA_SUPPORT( + 4 + , iter_fold_backward + , (Sequence,State,ForwardOp,ForwardOp) + ) +}; + +BOOST_MPL_AUX_VOID_SPEC(3, iter_fold_backward) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITER_FOLD_BACKWARD_HPP_INCLUDED diff --git a/include/boost/mpl/iterator_category.hpp b/include/boost/mpl/iterator_category.hpp new file mode 100644 index 0000000..6a137d4 --- /dev/null +++ b/include/boost/mpl/iterator_category.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/iterator_category.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED +#define BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Iterator) + > +struct iterator_category +{ + typedef typename Iterator::category type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,iterator_category,(Iterator)) +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct iterator_category +{ + typedef iterator_category type; +}; +#endif + +BOOST_MPL_AUX_VOID_SPEC(1, iterator_category) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITERATOR_CATEGORY_HPP_INCLUDED diff --git a/include/boost/mpl/iterator_range.hpp b/include/boost/mpl/iterator_range.hpp new file mode 100644 index 0000000..c859388 --- /dev/null +++ b/include/boost/mpl/iterator_range.hpp @@ -0,0 +1,47 @@ +//----------------------------------------------------------------------------- +// boost mpl/iterator_range.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED +#define BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +struct iterator_range_tag; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(First) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Last) + > +struct iterator_range +{ + typedef iterator_range_tag tag; + typedef iterator_range type; + typedef First begin; + typedef Last end; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,iterator_range,(First,Last)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, iterator_range) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITERATOR_RANGE_HPP_INCLUDED diff --git a/include/boost/mpl/iterator_tag.hpp b/include/boost/mpl/iterator_tag.hpp new file mode 100644 index 0000000..75261c9 --- /dev/null +++ b/include/boost/mpl/iterator_tag.hpp @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// boost mpl/iterator_tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED +#define BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED + +namespace boost { +namespace mpl { + +struct input_iter_tag_; +struct fwd_iter_tag_; +struct bi_iter_tag_; +struct ra_iter_tag_; + +typedef input_iter_tag_ input_iterator_tag; +typedef fwd_iter_tag_ forward_iterator_tag; +typedef bi_iter_tag_ bidirectional_iterator_tag; +typedef ra_iter_tag_ random_access_iterator_tag; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_ITERATOR_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/lambda.hpp b/include/boost/mpl/lambda.hpp new file mode 100644 index 0000000..3914cfa --- /dev/null +++ b/include/boost/mpl/lambda.hpp @@ -0,0 +1,28 @@ +//----------------------------------------------------------------------------- +// boost mpl/lambda.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LAMBDA_HPP_INCLUDED +#define BOOST_MPL_LAMBDA_HPP_INCLUDED + +#include "boost/mpl/aux_/config/lambda_support.hpp" + +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) +# include "boost/mpl/aux_/full_lambda.hpp" +#else +# include "boost/mpl/aux_/lambda_no_ctps.hpp" +#endif + +#endif // BOOST_MPL_LAMBDA_HPP_INCLUDED diff --git a/include/boost/mpl/lambda_fwd.hpp b/include/boost/mpl/lambda_fwd.hpp new file mode 100644 index 0000000..253ed07 --- /dev/null +++ b/include/boost/mpl/lambda_fwd.hpp @@ -0,0 +1,35 @@ +//----------------------------------------------------------------------------- +// boost mpl/labmda_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED +#define BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED + +#include "boost/mpl/aux_/lambda_arity_param.hpp" + +namespace boost { +namespace mpl { + +#if !defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT) +template< typename T BOOST_MPL_AUX_LAMBDA_ARITY_PARAM(long Arity) > +struct lambda; +#else +template< typename T, bool Protect > struct lambda; +#endif + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LAMBDA_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/lambda_helper.hpp b/include/boost/mpl/lambda_helper.hpp new file mode 100644 index 0000000..3a87fab --- /dev/null +++ b/include/boost/mpl/lambda_helper.hpp @@ -0,0 +1,86 @@ +//----------------------------------------------------------------------------- +// boost mpl/lambda_helper.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_LAMBDA_HELPER_HPP_INCLUDED +#define BOOST_MPL_LAMBDA_HELPER_HPP_INCLUDED + +#include "boost/config.hpp" +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER lambda_helper.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/preprocessor/repeat.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" + +namespace boost { +namespace mpl { + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3, (1,BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/lambda_helper.hpp")) +#include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_LAMBDA_HELPER_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +#define MPL_AUX_ARG_TYPEDEF(i, T) \ + typedef BOOST_PP_CAT(T, BOOST_PP_INC(i)) \ + BOOST_PP_CAT(arg, BOOST_PP_INC(i)); \ +/**/ + +template< + template< BOOST_MPL_PP_PARAMS(i, typename P) > class F + , BOOST_MPL_PP_PARAMS(i, typename T) + > +struct BOOST_PP_CAT(lambda_helper,i) +{ + struct rebind + { + BOOST_STATIC_CONSTANT(int, arity = i); + BOOST_MPL_PP_REPEAT(i, MPL_AUX_ARG_TYPEDEF, T) + template< BOOST_MPL_PP_PARAMS(i, typename U) > struct apply + : F + { + }; + }; +}; + +#undef MPL_AUX_ARG_TYPEDEF + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/limits/arity.hpp b/include/boost/mpl/limits/arity.hpp new file mode 100644 index 0000000..a045c3c --- /dev/null +++ b/include/boost/mpl/limits/arity.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/limits/arity.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED +#define BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED + +#if !defined(BOOST_MPL_METAFUNCTION_MAX_ARITY) +# define BOOST_MPL_METAFUNCTION_MAX_ARITY 5 +#endif + +#endif // BOOST_MPL_LIMITS_ARITY_HPP_INCLUDED diff --git a/include/boost/mpl/limits/list.hpp b/include/boost/mpl/limits/list.hpp new file mode 100644 index 0000000..0a2c4e7 --- /dev/null +++ b/include/boost/mpl/limits/list.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/limits/list.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIMITS_LIST_HPP_INCLUDED +#define BOOST_MPL_LIMITS_LIST_HPP_INCLUDED + +#if !defined(BOOST_MPL_LIMIT_LIST_SIZE) +# define BOOST_MPL_LIMIT_LIST_SIZE 10 +#endif + +#endif // BOOST_MPL_LIMITS_LIST_HPP_INCLUDED diff --git a/include/boost/mpl/limits/unrolling.hpp b/include/boost/mpl/limits/unrolling.hpp new file mode 100644 index 0000000..502a2a9 --- /dev/null +++ b/include/boost/mpl/limits/unrolling.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/limits/unrolling.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED +#define BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED + +#if !defined(BOOST_MPL_UNROLLING_LIMIT) +# define BOOST_MPL_UNROLLING_LIMIT 4 +#endif + +#endif // BOOST_MPL_LIMITS_UNROLLING_HPP_INCLUDED diff --git a/include/boost/mpl/limits/vector.hpp b/include/boost/mpl/limits/vector.hpp new file mode 100644 index 0000000..b2b9efb --- /dev/null +++ b/include/boost/mpl/limits/vector.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/limits/vector.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED +#define BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED + +#if !defined(BOOST_MPL_LIMIT_VECTOR_SIZE) +# define BOOST_MPL_LIMIT_VECTOR_SIZE 10 +#endif + +#endif // BOOST_MPL_LIMITS_VECTOR_HPP_INCLUDED diff --git a/include/boost/mpl/list.hpp b/include/boost/mpl/list.hpp new file mode 100644 index 0000000..b68a0a9 --- /dev/null +++ b/include/boost/mpl/list.hpp @@ -0,0 +1,217 @@ +//----------------------------------------------------------------------------- +// boost mpl/list.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_LIST_HPP_INCLUDED +#define BOOST_MPL_LIST_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/limits/list.hpp" +# include "boost/mpl/void.hpp" + +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/stringize.hpp" + +# define MPL_AUX_LIST_HEADER \ + BOOST_PP_STRINGIZE( \ + BOOST_PP_CAT( \ + BOOST_PP_CAT(boost/mpl/list/list, BOOST_MPL_LIMIT_LIST_SIZE) \ + ,.##hpp) \ + ) \ + /**/ + +# include MPL_AUX_LIST_HEADER +# undef MPL_AUX_LIST_HEADER +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/list.hpp" +# include "boost/mpl/aux_/preprocessor/project1st.hpp" + +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/enum_params_with_a_default.hpp" +# include "boost/preprocessor/enum_params.hpp" +# include "boost/preprocessor/enum.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/iterate.hpp" + +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define AUX_LIST_PARAMS(param) \ + BOOST_PP_ENUM_PARAMS( \ + BOOST_MPL_LIMIT_LIST_SIZE \ + , param \ + ) \ + /**/ + +# define AUX_LIST_DEFAULT_PARAMS(param, value) \ + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ + BOOST_MPL_LIMIT_LIST_SIZE \ + , param \ + , value \ + ) \ + /**/ + +# define AUX_LIST_N_PARAMS(n, param) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + /**/ + +# define AUX_LIST_N_PARTIAL_SPEC_PARAMS(n, param, def) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM( \ + BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_LIST_SIZE,n) \ + , BOOST_MPL_PP_PROJECT2ND \ + , def \ + ) \ + /**/ + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< + AUX_LIST_DEFAULT_PARAMS(typename T, void_) + > +struct list; +#else +namespace aux { +template< int > struct list_impl_chooser; +} +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_LIST_SIZE, "boost/mpl/list.hpp")) +#include BOOST_PP_ITERATE() + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { +// list_count_args +#define BOOST_MPL_AUX_COUNT_ARGS_PREFIX list +#define BOOST_MPL_AUX_COUNT_ARGS_DEFAULT void_ +#define BOOST_MPL_AUX_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_LIST_SIZE +#define BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES +#include "boost/mpl/aux_/count_args.hpp" + +template< + AUX_LIST_PARAMS(typename T) + > +struct list_impl +{ + typedef aux::list_count_args< AUX_LIST_PARAMS(T) > arg_num_; + typedef typename aux::list_impl_chooser< arg_num_::value > + ::template result_< AUX_LIST_PARAMS(T) >::type type; +}; + +} // namespace aux + +template< + AUX_LIST_DEFAULT_PARAMS(typename T, void_) + > +struct list + : aux::list_impl< AUX_LIST_PARAMS(T) >::type +{ + typedef typename aux::list_impl< + AUX_LIST_PARAMS(T) + >::type type; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef AUX_LIST_N_PARTIAL_SPEC_PARAMS +# undef AUX_LIST_N_PARAMS +# undef AUX_LIST_DEFAULT_PARAMS +# undef AUX_LIST_PARAMS + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_LIST_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i == BOOST_MPL_LIMIT_LIST_SIZE + +//: primary template (not a specialization!) +template< + AUX_LIST_N_PARAMS(i, typename T) + > +struct list + : BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > +{ + typedef BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > type; +}; + +#else + +template< + AUX_LIST_N_PARAMS(i, typename T) + > +struct list< AUX_LIST_N_PARTIAL_SPEC_PARAMS(i, T, void_) > + : BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > +{ + typedef BOOST_PP_CAT(list,i)< AUX_LIST_N_PARAMS(i, T) > type; +}; + +#endif // i == BOOST_MPL_LIMIT_LIST_SIZE + +# else + +namespace aux { + +template<> +struct list_impl_chooser +{ + template< + AUX_LIST_PARAMS(typename T) + > + struct result_ + { + typedef BOOST_PP_CAT(list,i)< + AUX_LIST_N_PARAMS(i, T) + > type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/list/aux_/O1_size.hpp b/include/boost/mpl/list/aux_/O1_size.hpp new file mode 100644 index 0000000..f41d98c --- /dev/null +++ b/include/boost/mpl/list/aux_/O1_size.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/O1_size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED + +#include "boost/mpl/O1_size_fwd.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct O1_size_traits< aux::list_tag > +{ + template< typename List > struct algorithm + : List::size + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_O1_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/begin_end.hpp b/include/boost/mpl/list/aux_/begin_end.hpp new file mode 100644 index 0000000..0e8d701 --- /dev/null +++ b/include/boost/mpl/list/aux_/begin_end.hpp @@ -0,0 +1,49 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/begin_end.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED + +#include "boost/mpl/begin_end_fwd.hpp" +#include "boost/mpl/list/aux_/iterator.hpp" +#include "boost/mpl/list/aux_/tag.hpp" +#include "boost/mpl/list/aux_/node.hpp" + +namespace boost { +namespace mpl { + +template<> +struct begin_traits< aux::list_tag > +{ + template< typename List > struct algorithm + { + typedef list_iterator type; + }; +}; + +template<> +struct end_traits< aux::list_tag > +{ + template< typename > struct algorithm + { + typedef list_iterator type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_BEGIN_END_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/clear.hpp b/include/boost/mpl/list/aux_/clear.hpp new file mode 100644 index 0000000..a2ad0e2 --- /dev/null +++ b/include/boost/mpl/list/aux_/clear.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/clear.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED + +#include "boost/mpl/clear_fwd.hpp" +#include "boost/mpl/list/aux_/node.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct clear_traits< aux::list_tag > +{ + template< typename List > struct algorithm + { + typedef null_node type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_CLEAR_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/empty.hpp b/include/boost/mpl/list/aux_/empty.hpp new file mode 100644 index 0000000..d73f9c4 --- /dev/null +++ b/include/boost/mpl/list/aux_/empty.hpp @@ -0,0 +1,39 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/empty.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED + +#include "boost/mpl/empty_fwd.hpp" +#include "boost/mpl/logical/not.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct empty_traits< aux::list_tag > +{ + template< typename List > struct algorithm + : logical_not + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/front.hpp b/include/boost/mpl/list/aux_/front.hpp new file mode 100644 index 0000000..dc8877e --- /dev/null +++ b/include/boost/mpl/list/aux_/front.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED + +#include "boost/mpl/front_fwd.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct front_traits< aux::list_tag > +{ + template< typename List > struct algorithm + { + typedef typename List::item type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/iterator.hpp b/include/boost/mpl/list/aux_/iterator.hpp new file mode 100644 index 0000000..ffc130b --- /dev/null +++ b/include/boost/mpl/list/aux_/iterator.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/iterator.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED + +#include "boost/mpl/iterator_tag.hpp" +#include "boost/mpl/list/aux_/node.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +template< typename Node > +struct list_iterator +{ + typedef forward_iterator_tag category; + typedef typename Node::item type; + typedef list_iterator next; +}; + +template<> +struct list_iterator +{ + typedef forward_iterator_tag category; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,list_iterator) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_ITERATOR_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/node.hpp b/include/boost/mpl/list/aux_/node.hpp new file mode 100644 index 0000000..b9aa065 --- /dev/null +++ b/include/boost/mpl/list/aux_/node.hpp @@ -0,0 +1,51 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/node.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template< + typename Size + , typename T + , typename Next + > +struct list_node +{ + typedef aux::list_tag tag; + typedef list_node type; + + typedef Size size; + typedef T item; + typedef Next next; +}; + +struct null_node +{ + typedef aux::list_tag tag; + typedef null_node type; + typedef integral_c size; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_NODE_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/numbered.hpp b/include/boost/mpl/list/aux_/numbered.hpp new file mode 100644 index 0000000..4bcaec0 --- /dev/null +++ b/include/boost/mpl/list/aux_/numbered.hpp @@ -0,0 +1,70 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/numbered.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if defined(BOOST_PP_IS_ITERATING) + +#include "boost/preprocessor/enum_params.hpp" +#include "boost/preprocessor/enum_shifted_params.hpp" +#include "boost/preprocessor/dec.hpp" +#include "boost/preprocessor/cat.hpp" + +#define i BOOST_PP_FRAME_ITERATION(1) + +#if i == 1 + +template< + BOOST_PP_ENUM_PARAMS(i, typename T) + > +struct list1 + : list_node< + integral_c + , T0 + , null_node + > +{ + typedef list1 type; +}; + +#else + +# define MPL_AUX_LIST_TAIL(list, i, T) \ + BOOST_PP_CAT(list,BOOST_PP_DEC(i))< \ + BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \ + > \ + /**/ + +template< + BOOST_PP_ENUM_PARAMS(i, typename T) + > +struct BOOST_PP_CAT(list,i) + : list_node< + integral_c + , T0 + , MPL_AUX_LIST_TAIL(list,i,T) + > +{ + typedef BOOST_PP_CAT(list,i) type; +}; + +# undef MPL_AUX_LIST_TAIL + +#endif // i == 1 + +#undef i + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/list/aux_/numbered_c.hpp b/include/boost/mpl/list/aux_/numbered_c.hpp new file mode 100644 index 0000000..c09bbf4 --- /dev/null +++ b/include/boost/mpl/list/aux_/numbered_c.hpp @@ -0,0 +1,72 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/numbered_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if defined(BOOST_PP_IS_ITERATING) + +#include "boost/preprocessor/enum_params.hpp" +#include "boost/preprocessor/enum_shifted_params.hpp" +#include "boost/preprocessor/dec.hpp" +#include "boost/preprocessor/cat.hpp" + +#define i BOOST_PP_FRAME_ITERATION(1) + +#if i == 1 + +template< + typename T + , BOOST_PP_ENUM_PARAMS(i, T C) + > +struct list1_c + : list_node< + integral_c + , integral_c + , null_node + > +{ + typedef list1_c type; +}; + +#else + +# define MPL_AUX_LIST_C_TAIL(list, i, C) \ + BOOST_PP_CAT(BOOST_PP_CAT(list,BOOST_PP_DEC(i)),_c) \ + /**/ + +template< + typename T + , BOOST_PP_ENUM_PARAMS(i, T C) + > +struct BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) + : list_node< + integral_c + , integral_c + , MPL_AUX_LIST_C_TAIL(list,i,C) + > +{ + typedef BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) type; +}; + +# undef MPL_AUX_LIST_C_TAIL + +#endif // i == 1 + +#undef i + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/list/aux_/pop_front.hpp b/include/boost/mpl/list/aux_/pop_front.hpp new file mode 100644 index 0000000..a6eb49c --- /dev/null +++ b/include/boost/mpl/list/aux_/pop_front.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/pop_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED + +#include "boost/mpl/pop_front_fwd.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct pop_front_traits< aux::list_tag > +{ + template< typename List > struct algorithm + { + typedef typename List::next type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_POP_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/push_front.hpp b/include/boost/mpl/list/aux_/push_front.hpp new file mode 100644 index 0000000..6d0c004 --- /dev/null +++ b/include/boost/mpl/list/aux_/push_front.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/push_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED + +#include "boost/mpl/push_front_fwd.hpp" +#include "boost/mpl/aux_/next.hpp" +#include "boost/mpl/list/aux_/node.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct push_front_traits< aux::list_tag > +{ + template< typename List, typename T > struct algorithm + { + typedef list_node< + typename BOOST_MPL_AUX_NEXT(List::size) + , T + , typename List::type + > type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_PUSH_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/size.hpp b/include/boost/mpl/list/aux_/size.hpp new file mode 100644 index 0000000..cb9427e --- /dev/null +++ b/include/boost/mpl/list/aux_/size.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED + +#include "boost/mpl/size_fwd.hpp" +#include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct size_traits< aux::list_tag > +{ + template< typename List > struct algorithm + : List::size + { + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/list/aux_/tag.hpp b/include/boost/mpl/list/aux_/tag.hpp new file mode 100644 index 0000000..320b3ca --- /dev/null +++ b/include/boost/mpl/list/aux_/tag.hpp @@ -0,0 +1,30 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED + +namespace boost { +namespace mpl { +namespace aux { + +struct list_tag; + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/list/list0.hpp b/include/boost/mpl/list/list0.hpp new file mode 100644 index 0000000..30b2d40 --- /dev/null +++ b/include/boost/mpl/list/list0.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list0.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST0_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST0_HPP_INCLUDED + +#include "boost/mpl/void.hpp" +#include "boost/mpl/list/aux_/push_front.hpp" +#include "boost/mpl/list/aux_/pop_front.hpp" +#include "boost/mpl/list/aux_/front.hpp" +#include "boost/mpl/list/aux_/clear.hpp" +#include "boost/mpl/list/aux_/O1_size.hpp" +#include "boost/mpl/list/aux_/size.hpp" +#include "boost/mpl/list/aux_/empty.hpp" +#include "boost/mpl/list/aux_/begin_end.hpp" +#include "boost/mpl/list/aux_/node.hpp" + +namespace boost { +namespace mpl { + +template< typename Dummy = void_ > struct list0; +template<> struct list0 + : null_node +{ + typedef null_node type; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_LIST0_HPP_INCLUDED diff --git a/include/boost/mpl/list/list0_c.hpp b/include/boost/mpl/list/list0_c.hpp new file mode 100644 index 0000000..89c15ac --- /dev/null +++ b/include/boost/mpl/list/list0_c.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list0_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/list/aux_/push_front.hpp" +#include "boost/mpl/list/aux_/pop_front.hpp" +#include "boost/mpl/list/aux_/front.hpp" +#include "boost/mpl/list/aux_/clear.hpp" +#include "boost/mpl/list/aux_/size.hpp" +#include "boost/mpl/list/aux_/empty.hpp" +#include "boost/mpl/list/aux_/begin_end.hpp" +#include "boost/mpl/list/aux_/node.hpp" + +namespace boost { +namespace mpl { + +template< typename T > struct list0_c + : null_node +{ + typedef null_node type; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_LIST0_C_HPP_INCLUDED diff --git a/include/boost/mpl/list/list10.hpp b/include/boost/mpl/list/list10.hpp new file mode 100644 index 0000000..f05d73f --- /dev/null +++ b/include/boost/mpl/list/list10.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list10.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST10_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST10_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list0.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list10.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, 10, "boost/mpl/list/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST10_HPP_INCLUDED diff --git a/include/boost/mpl/list/list10_c.hpp b/include/boost/mpl/list/list10_c.hpp new file mode 100644 index 0000000..0aeae57 --- /dev/null +++ b/include/boost/mpl/list/list10_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list10_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list0_c.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list10_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, 10, "boost/mpl/list/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST10_C_HPP_INCLUDED diff --git a/include/boost/mpl/list/list20.hpp b/include/boost/mpl/list/list20.hpp new file mode 100644 index 0000000..daa1ed5 --- /dev/null +++ b/include/boost/mpl/list/list20.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list20.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST20_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST20_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list10.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list20.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(11, 20, "boost/mpl/list/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST20_HPP_INCLUDED diff --git a/include/boost/mpl/list/list20_c.hpp b/include/boost/mpl/list/list20_c.hpp new file mode 100644 index 0000000..70cb3ec --- /dev/null +++ b/include/boost/mpl/list/list20_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list20_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list10_c.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list20_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(11, 20, "boost/mpl/list/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST20_C_HPP_INCLUDED diff --git a/include/boost/mpl/list/list30.hpp b/include/boost/mpl/list/list30.hpp new file mode 100644 index 0000000..e23044c --- /dev/null +++ b/include/boost/mpl/list/list30.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list30.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST30_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST30_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list20.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list30.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(21, 30, "boost/mpl/list/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST30_HPP_INCLUDED diff --git a/include/boost/mpl/list/list30_c.hpp b/include/boost/mpl/list/list30_c.hpp new file mode 100644 index 0000000..66abb05 --- /dev/null +++ b/include/boost/mpl/list/list30_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list30_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list20_c.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list30_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(21, 30, "boost/mpl/list/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST30_C_HPP_INCLUDED diff --git a/include/boost/mpl/list/list40.hpp b/include/boost/mpl/list/list40.hpp new file mode 100644 index 0000000..d57275f --- /dev/null +++ b/include/boost/mpl/list/list40.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list40.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST40_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST40_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list30.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list40.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(31, 40, "boost/mpl/list/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST40_HPP_INCLUDED diff --git a/include/boost/mpl/list/list40_c.hpp b/include/boost/mpl/list/list40_c.hpp new file mode 100644 index 0000000..90cf77e --- /dev/null +++ b/include/boost/mpl/list/list40_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list40_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list30_c.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list40_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(31, 40, "boost/mpl/list/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST40_C_HPP_INCLUDED diff --git a/include/boost/mpl/list/list50.hpp b/include/boost/mpl/list/list50.hpp new file mode 100644 index 0000000..c97b746 --- /dev/null +++ b/include/boost/mpl/list/list50.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list50.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST50_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST50_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list40.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list50.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(41, 50, "boost/mpl/list/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST50_HPP_INCLUDED diff --git a/include/boost/mpl/list/list50_c.hpp b/include/boost/mpl/list/list50_c.hpp new file mode 100644 index 0000000..29dcde5 --- /dev/null +++ b/include/boost/mpl/list/list50_c.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/list50_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED +#define BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/list/list40_c.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list50_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(41, 50, "boost/mpl/list/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_LIST_LIST50_C_HPP_INCLUDED diff --git a/include/boost/mpl/list_c.hpp b/include/boost/mpl/list_c.hpp new file mode 100644 index 0000000..2d494c7 --- /dev/null +++ b/include/boost/mpl/list_c.hpp @@ -0,0 +1,234 @@ +//----------------------------------------------------------------------------- +// boost mpl/list_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_LIST_C_HPP_INCLUDED +#define BOOST_MPL_LIST_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/limits/list.hpp" + +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/stringize.hpp" + +# define MPL_AUX_LIST_HEADER \ + BOOST_PP_STRINGIZE( \ + BOOST_PP_CAT( \ + BOOST_PP_CAT(boost/mpl/list/list, BOOST_MPL_LIMIT_LIST_SIZE) \ + ,_c.##hpp) \ + ) \ + /**/ + +# include MPL_AUX_LIST_HEADER +# undef MPL_AUX_LIST_HEADER +# include +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER list_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/list.hpp" +# include "boost/mpl/aux_/preprocessor/project1st.hpp" + +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/enum_params_with_a_default.hpp" +# include "boost/preprocessor/enum_params.hpp" +# include "boost/preprocessor/enum.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/iterate.hpp" + +# include "boost/config.hpp" + +#if defined(BOOST_MPL_PREPROCESSING_MODE) +# undef LONG_MAX +#endif + +namespace boost { +namespace mpl { + +# define AUX_LIST_C(i) \ + BOOST_PP_CAT(BOOST_PP_CAT(list,i),_c) \ + /**/ + +# define AUX_LIST_C_PARAMS(param) \ + BOOST_PP_ENUM_PARAMS( \ + BOOST_MPL_LIMIT_LIST_SIZE \ + , param \ + ) \ + /**/ + +# define AUX_LIST_C_DEFAULT_PARAMS(param, value) \ + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ + BOOST_MPL_LIMIT_LIST_SIZE \ + , param \ + , value \ + ) \ + /**/ + +# define AUX_LIST_C_N_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + /**/ + +# define AUX_LIST_C_N_PARTIAL_SPEC_PARAMS(n, param, def) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM( \ + BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_LIST_SIZE,n) \ + , BOOST_MPL_PP_PROJECT2ND \ + , def \ + ) \ + /**/ + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< + typename T + , AUX_LIST_C_DEFAULT_PARAMS(long C, LONG_MAX) + > +struct list_c; +#else +namespace aux { +template< int > struct list_c_impl_chooser; +} +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_LIST_SIZE, "boost/mpl/list_c.hpp")) +#include BOOST_PP_ITERATE() + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { +// list_count_args +#define BOOST_MPL_AUX_COUNT_ARGS_PREFIX list_c +#define BOOST_MPL_AUX_COUNT_ARGS_DEFAULT LONG_MAX +#define BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM long T +#define BOOST_MPL_AUX_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_LIST_SIZE +#define BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES +#include "boost/mpl/aux_/count_args.hpp" + +template< + typename T + , AUX_LIST_C_PARAMS(long C) + > +struct list_c_impl +{ + typedef aux::list_c_count_args< AUX_LIST_C_PARAMS(C) > arg_num_; + typedef typename aux::list_c_impl_chooser< arg_num_::value > + ::template result_< T, AUX_LIST_C_PARAMS(C) >::type type; +}; + +} // namespace aux + +template< + typename T + , AUX_LIST_C_DEFAULT_PARAMS(long C, LONG_MAX) + > +struct list_c + : aux::list_c_impl< T,AUX_LIST_C_PARAMS(C) >::type +{ + typedef typename aux::list_c_impl< + T,AUX_LIST_C_PARAMS(C) + >::type type; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef AUX_LIST_C_N_PARTIAL_SPEC_PARAMS +# undef AUX_LIST_C_N_PARAMS +# undef AUX_LIST_C_DEFAULT_PARAMS +# undef AUX_LIST_C_PARAMS +# undef AUX_LIST_C + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_LIST_C_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i == BOOST_MPL_LIMIT_LIST_SIZE + +//: primary template (not a specialization!) +template< + typename T + AUX_LIST_C_N_PARAMS(i, long C) + > +struct list_c + : AUX_LIST_C(i)< T AUX_LIST_C_N_PARAMS(i, C) > +{ + typedef typename AUX_LIST_C(i)< T AUX_LIST_C_N_PARAMS(i, C) >::type type; +}; + +#else + +template< + typename T + AUX_LIST_C_N_PARAMS(i, long C) + > +struct list_c< T,AUX_LIST_C_N_PARTIAL_SPEC_PARAMS(i, C, LONG_MAX) > + : AUX_LIST_C(i)< T AUX_LIST_C_N_PARAMS(i, C) > +{ + typedef typename AUX_LIST_C(i)< T AUX_LIST_C_N_PARAMS(i, C) >::type type; +}; + +#endif // i == BOOST_MPL_LIMIT_LIST_SIZE + +# else + +namespace aux { + +template<> +struct list_c_impl_chooser +{ + template< + typename T + , AUX_LIST_C_PARAMS(long C) + > + struct result_ + { + typedef typename AUX_LIST_C(i)< + T AUX_LIST_C_N_PARAMS(i, C) + >::type type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/logical.hpp b/include/boost/mpl/logical.hpp new file mode 100644 index 0000000..6723175 --- /dev/null +++ b/include/boost/mpl/logical.hpp @@ -0,0 +1,24 @@ +//----------------------------------------------------------------------------- +// boost mpl/logical.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED +#define BOOST_MPL_LOGICAL_HPP_INCLUDED + +#include "boost/mpl/logical/or.hpp" +#include "boost/mpl/logical/and.hpp" +#include "boost/mpl/logical/not.hpp" + +#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED diff --git a/include/boost/mpl/logical/and.hpp b/include/boost/mpl/logical/and.hpp new file mode 100644 index 0000000..df50b64 --- /dev/null +++ b/include/boost/mpl/logical/and.hpp @@ -0,0 +1,127 @@ +//----------------------------------------------------------------------------- +// boost mpl/logical/and.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LOGICAL_AND_HPP_INCLUDED +#define BOOST_MPL_LOGICAL_AND_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/aux_/nested_type_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + bool C, typename T1, typename T2, typename T3, typename T4 + > +struct logical_and_impl + : false_c +{ +}; + +template< + typename T1, typename T2, typename T3, typename T4 + > +struct logical_and_impl + : logical_and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,true_c + > +{ +}; + +template<> +struct logical_and_impl + : true_c +{ +}; + +#else + +template< bool C > struct logical_and_impl +{ + template< + typename T1, typename T2, typename T3, typename T4 + > + struct result_ + : false_c + { + }; +}; + +template<> struct logical_and_impl +{ + template< + typename T1, typename T2, typename T3, typename T4 + > + struct result_ + : logical_and_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value > + ::template result_ + { + }; + +#if defined(BOOST_MSVC) && BOOST_MSVC == 1300 + template<> + struct result_ + : true_c + { + }; +}; +#else +}; + +template<> +struct logical_and_impl::result_ + : true_c +{ +}; +#endif // BOOST_MSVC == 1300 + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = true_c + , typename T4 = true_c + , typename T5 = true_c + > +struct logical_and +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + : aux::logical_and_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,T5 + > +#else + : aux::logical_and_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value > + ::template result_ +#endif +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(5,logical_and,(T1,T2,T3,T4,T5)) +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,logical_and) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LOGICAL_AND_HPP_INCLUDED diff --git a/include/boost/mpl/logical/not.hpp b/include/boost/mpl/logical/not.hpp new file mode 100644 index 0000000..e5d00aa --- /dev/null +++ b/include/boost/mpl/logical/not.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/logical/not.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED +#define BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/aux_/nested_type_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< long C > // |long| is intentional here +struct logical_not_impl + : bool_c +{ +}; + +} // namespace aux + + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct logical_not + : aux::logical_not_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value + > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,logical_not,(T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1,logical_not) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED diff --git a/include/boost/mpl/logical/or.hpp b/include/boost/mpl/logical/or.hpp new file mode 100644 index 0000000..0dbc7f6 --- /dev/null +++ b/include/boost/mpl/logical/or.hpp @@ -0,0 +1,127 @@ +//----------------------------------------------------------------------------- +// boost mpl/logical/or.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LOGICAL_OR_HPP_INCLUDED +#define BOOST_MPL_LOGICAL_OR_HPP_INCLUDED + +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/aux_/nested_type_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< + bool C, typename T1, typename T2, typename T3, typename T4 + > +struct logical_or_impl + : true_c +{ +}; + +template< + typename T1, typename T2, typename T3, typename T4 + > +struct logical_or_impl + : logical_or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,false_c + > +{ +}; + +template<> +struct logical_or_impl + : false_c +{ +}; + +#else + +template< bool C > struct logical_or_impl +{ + template< + typename T1, typename T2, typename T3, typename T4 + > + struct result_ + : true_c + { + }; +}; + +template<> struct logical_or_impl +{ + template< + typename T1, typename T2, typename T3, typename T4 + > + struct result_ + : logical_or_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value > + ::template result_ + { + }; + +#if defined(BOOST_MSVC) && BOOST_MSVC == 1300 + template<> + struct result_ + : false_c + { + }; +}; +#else +}; + +template<> +struct logical_or_impl::result_ + : false_c +{ +}; +#endif // BOOST_MSVC == 1300 + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + , typename T3 = false_c + , typename T4 = false_c + , typename T5 = false_c + > +struct logical_or +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + : aux::logical_or_impl< + BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,T5 + > +#else + : aux::logical_or_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value> + ::template result_ +#endif +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(5,logical_or,(T1,T2,T3,T4,T5)) +}; + +BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,logical_or) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LOGICAL_OR_HPP_INCLUDED diff --git a/include/boost/mpl/lower_bound.hpp b/include/boost/mpl/lower_bound.hpp new file mode 100644 index 0000000..d30a56b --- /dev/null +++ b/include/boost/mpl/lower_bound.hpp @@ -0,0 +1,102 @@ +//----------------------------------------------------------------------------- +// boost mpl/lower_bound.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LOWER_BOUND_HPP_INCLUDED +#define BOOST_MPL_LOWER_BOUND_HPP_INCLUDED + +#include "boost/mpl/size.hpp" +#include "boost/mpl/advance.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/deref_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +// agurt, 31/mar/02: to workwaround VC7.0 early template instantiation bug +template< long Distance > +struct lower_bound_step; + +template<> +struct lower_bound_step<0> +{ + template< + typename Predicate + , typename T + , typename DeferredIterator + > + struct result_ + { + typedef typename DeferredIterator::type type; + }; +}; + +template< long Distance > +struct lower_bound_step +{ + template< + typename Predicate + , typename T + , typename DeferredIterator + > + struct result_ + { + typedef integral_c offset_; + typedef typename DeferredIterator::type iter_; + typedef typename advance::type middle_; + typedef typename apply_if< + typename BOOST_MPL_AUX_APPLY2( + Predicate + , typename BOOST_MPL_AUX_DEREF_WNKD(middle_) + , T + )::type + , typename lower_bound_step + ::template result_< Predicate,T,next > + , typename lower_bound_step + ::template result_< Predicate,T,DeferredIterator > + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct lower_bound +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename aux::lower_bound_step< size::value > + ::template result_< pred_,T,begin >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(3, lower_bound) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LOWER_BOUND_HPP_INCLUDED diff --git a/include/boost/mpl/math/fixed_c.hpp b/include/boost/mpl/math/fixed_c.hpp new file mode 100644 index 0000000..6405b12 --- /dev/null +++ b/include/boost/mpl/math/fixed_c.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost/mpl/fixed_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-01 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_FIXED_C_HPP_INCLUDED +#define BOOST_MPL_FIXED_C_HPP_INCLUDED + +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + long IntegerPart + , unsigned long FractionPart + > +struct fixed_c +{ + BOOST_STATIC_CONSTANT(long, integer_part = IntegerPart); + BOOST_STATIC_CONSTANT(unsigned long, fraction_part = FractionPart); + typedef fixed_c type; + + fixed_c() {} +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_FIXED_C_HPP_INCLUDED diff --git a/include/boost/mpl/math/rational_c.hpp b/include/boost/mpl/math/rational_c.hpp new file mode 100644 index 0000000..18a0766 --- /dev/null +++ b/include/boost/mpl/math/rational_c.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost/mpl/rational_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_RATIONAL_C_HPP_INCLUDED +#define BOOST_MPL_RATIONAL_C_HPP_INCLUDED + +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +template< + typename IntegerType + , IntegerType N + , IntegerType D = 1 + > +struct rational_c +{ + BOOST_STATIC_CONSTANT(IntegerType, numerator = N); + BOOST_STATIC_CONSTANT(IntegerType, denominator = D); + + typedef rational_c type; + rational_c() {} +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_RATIONAL_C_HPP_INCLUDED diff --git a/include/boost/mpl/max_element.hpp b/include/boost/mpl/max_element.hpp new file mode 100644 index 0000000..f3fa73d --- /dev/null +++ b/include/boost/mpl/max_element.hpp @@ -0,0 +1,77 @@ +//----------------------------------------------------------------------------- +// boost mpl/max_element.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED +#define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED + +#include "boost/mpl/comparison/less.hpp" +#include "boost/mpl/iter_fold.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/if.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Predicate > +struct select_max +{ + template< typename OldIterator, typename Iterator > + struct apply + { + typedef typename apply2< + Predicate + , typename OldIterator::type + , typename Iterator::type + >::type condition_; + + typedef typename if_< + condition_ + , Iterator + , OldIterator + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename Predicate = less<_,_> + > +struct max_element +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename iter_fold< + Sequence + , typename begin::type + , protect< aux::select_max > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(1, max_element) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED diff --git a/include/boost/mpl/meta_fun.hpp b/include/boost/mpl/meta_fun.hpp new file mode 100644 index 0000000..a3beb8e --- /dev/null +++ b/include/boost/mpl/meta_fun.hpp @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------------- +// boost mpl/meta_fun.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_META_FUN_HPP_INCLUDED +#define BOOST_MPL_META_FUN_HPP_INCLUDED + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER meta_fun.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/arity.hpp" +# include "boost/mpl/aux_/preprocessor/params.hpp" +# include "boost/mpl/aux_/config/ttp.hpp" + +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/cat.hpp" + +#if !defined(BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS) + +namespace boost { +namespace mpl { + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/meta_fun.hpp")) +#include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_NO_TEMPLATE_TEMPLATE_PARAMETERS + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_META_FUN_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +template< + template< BOOST_MPL_PP_PARAMS(i, typename P) > class F + > +struct BOOST_PP_CAT(meta_fun,i) +{ + template< BOOST_MPL_PP_PARAMS(i, typename U) > struct apply + : F< BOOST_MPL_PP_PARAMS(i, U) > + { + }; +}; + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/next.hpp b/include/boost/mpl/next.hpp new file mode 100644 index 0000000..381ca44 --- /dev/null +++ b/include/boost/mpl/next.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/next.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_NEXT_HPP_INCLUDED +#define BOOST_MPL_NEXT_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct next +{ + typedef typename T::next type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,next,(T)) +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct next +{ + typedef next type; +}; +#endif + +BOOST_MPL_AUX_VOID_SPEC(1, next) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_NEXT_HPP_INCLUDED diff --git a/include/boost/mpl/pair.hpp b/include/boost/mpl/pair.hpp new file mode 100644 index 0000000..b940b8a --- /dev/null +++ b/include/boost/mpl/pair.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/pair.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PAIR_HPP_INCLUDED +#define BOOST_MPL_PAIR_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct pair +{ + typedef pair type; + typedef T1 first; + typedef T2 second; + + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,pair,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, pair) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PAIR_HPP_INCLUDED diff --git a/include/boost/mpl/placeholder.hpp b/include/boost/mpl/placeholder.hpp new file mode 100644 index 0000000..f247cc8 --- /dev/null +++ b/include/boost/mpl/placeholder.hpp @@ -0,0 +1,83 @@ +//----------------------------------------------------------------------------- +// boost mpl/placeholder.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_PLACEHOLDER_HPP_INCLUDED +#define BOOST_MPL_PLACEHOLDER_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/arg.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER placeholder.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/arity.hpp" +# include "boost/preprocessor/iterate.hpp" +# include "boost/preprocessor/cat.hpp" + +namespace boost { +namespace mpl { + +// watch out for GNU gettext users, who #define _(x) +#if !defined(_) || defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) +typedef arg<-1> _; + +namespace placeholder { +using boost::mpl::_; +} +#endif + +//: agurt, 17/mar/02: one more placeholder for the last 'apply#' +//: specialization +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, BOOST_MPL_METAFUNCTION_MAX_ARITY + 1, "boost/mpl/placeholder.hpp")) +#include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#if !defined(_) || defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT) +//: injecting the unnumbered placeholder into global namespace +using boost::mpl::_; +#endif + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_PLACEHOLDER_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +typedef arg BOOST_PP_CAT(_,i); + +namespace placeholder { +using boost::mpl::BOOST_PP_CAT(_,i); +} + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/pop_back.hpp b/include/boost/mpl/pop_back.hpp new file mode 100644 index 0000000..f1377d5 --- /dev/null +++ b/include/boost/mpl/pop_back.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_POP_BACK_HPP_INCLUDED +#define BOOST_MPL_POP_BACK_HPP_INCLUDED + +#include "boost/mpl/pop_back_fwd.hpp" +#include "boost/mpl/aux_/pop_back_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct pop_back + : pop_back_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_back,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, pop_back) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_POP_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/pop_back_fwd.hpp b/include/boost/mpl/pop_back_fwd.hpp new file mode 100644 index 0000000..b1808b9 --- /dev/null +++ b/include/boost/mpl/pop_back_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_back_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED +#define BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct pop_back_traits; +template< typename Sequence > struct pop_back; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_POP_BACK_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/pop_front.hpp b/include/boost/mpl/pop_front.hpp new file mode 100644 index 0000000..8f0e6f1 --- /dev/null +++ b/include/boost/mpl/pop_front.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_POP_FRONT_HPP_INCLUDED +#define BOOST_MPL_POP_FRONT_HPP_INCLUDED + +#include "boost/mpl/pop_front_fwd.hpp" +#include "boost/mpl/aux_/pop_front_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct pop_front + : pop_front_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,pop_front,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, pop_front) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_POP_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/pop_front_fwd.hpp b/include/boost/mpl/pop_front_fwd.hpp new file mode 100644 index 0000000..a63099f --- /dev/null +++ b/include/boost/mpl/pop_front_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/pop_front_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED +#define BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct pop_front_traits; +template< typename Sequence > struct pop_front; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_POP_FRONT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/prior.hpp b/include/boost/mpl/prior.hpp new file mode 100644 index 0000000..43d79b1 --- /dev/null +++ b/include/boost/mpl/prior.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/prior.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PRIOR_HPP_INCLUDED +#define BOOST_MPL_PRIOR_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct prior +{ + typedef typename T::prior type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,prior,(T)) +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct prior +{ + typedef prior type; +}; +#endif + +BOOST_MPL_AUX_VOID_SPEC(1, prior) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PRIOR_HPP_INCLUDED diff --git a/include/boost/mpl/project1st.hpp b/include/boost/mpl/project1st.hpp new file mode 100644 index 0000000..c6f7b06 --- /dev/null +++ b/include/boost/mpl/project1st.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/project1st.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PROJECT1ST_HPP_INCLUDED +#define BOOST_MPL_PROJECT1ST_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct project1st +{ + typedef T1 type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,project1st,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, project1st) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PROJECT1ST_HPP_INCLUDED diff --git a/include/boost/mpl/project2nd.hpp b/include/boost/mpl/project2nd.hpp new file mode 100644 index 0000000..e3f4570 --- /dev/null +++ b/include/boost/mpl/project2nd.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/project2nd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PROJECT2ND_HPP_INCLUDED +#define BOOST_MPL_PROJECT2ND_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2) + > +struct project2nd +{ + typedef T2 type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,project2nd,(T1,T2)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, project2nd) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PROJECT2ND_HPP_INCLUDED diff --git a/include/boost/mpl/protect.hpp b/include/boost/mpl/protect.hpp new file mode 100644 index 0000000..79b31ad --- /dev/null +++ b/include/boost/mpl/protect.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/protect.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PROTECT_HPP_INCLUDED +#define BOOST_MPL_PROTECT_HPP_INCLUDED + +#include "boost/mpl/aux_/arity.hpp" +#include "boost/mpl/aux_/config/dtp.hpp" + +namespace boost { +namespace mpl { + +template< typename T > +struct protect : T +{ + typedef protect type; +}; + +#if defined(BOOST_NO_DEFAULT_TEMPLATE_PARAMETERS_IN_NESTED_TEMPLATES) +namespace aux { +template< typename T, int N > +struct arity< protect, N > + : arity +{ +}; +} +#endif + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PROTECT_HPP_INCLUDED diff --git a/include/boost/mpl/push_back.hpp b/include/boost/mpl/push_back.hpp new file mode 100644 index 0000000..92ab53e --- /dev/null +++ b/include/boost/mpl/push_back.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/push_back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PUSH_BACK_HPP_INCLUDED +#define BOOST_MPL_PUSH_BACK_HPP_INCLUDED + +#include "boost/mpl/push_back_fwd.hpp" +#include "boost/mpl/aux_/push_back_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct push_back + : push_back_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence,T > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_back,(Sequence,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, push_back) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PUSH_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/push_back_fwd.hpp b/include/boost/mpl/push_back_fwd.hpp new file mode 100644 index 0000000..4165d3f --- /dev/null +++ b/include/boost/mpl/push_back_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/push_back_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED +#define BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct push_back_traits; +template< typename Sequence, typename T > struct push_back; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PUSH_BACK_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/push_front.hpp b/include/boost/mpl/push_front.hpp new file mode 100644 index 0000000..8cddc0e --- /dev/null +++ b/include/boost/mpl/push_front.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/push_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PUSH_FRONT_HPP_INCLUDED +#define BOOST_MPL_PUSH_FRONT_HPP_INCLUDED + +#include "boost/mpl/push_front_fwd.hpp" +#include "boost/mpl/aux_/push_front_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct push_front + : push_front_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence,T > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(2,push_front,(Sequence,T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(2, push_front) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PUSH_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/push_front_fwd.hpp b/include/boost/mpl/push_front_fwd.hpp new file mode 100644 index 0000000..907fba5 --- /dev/null +++ b/include/boost/mpl/push_front_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/push_front_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED +#define BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct push_front_traits; +template< typename Sequence, typename T > struct push_front; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_PUSH_FRONT_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/range_c.hpp b/include/boost/mpl/range_c.hpp new file mode 100644 index 0000000..22cf501 --- /dev/null +++ b/include/boost/mpl/range_c.hpp @@ -0,0 +1,52 @@ +//----------------------------------------------------------------------------- +// boost mpl/range_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_RANGE_C_HPP_INCLUDED +#define BOOST_MPL_RANGE_C_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/range_c/front.hpp" +#include "boost/mpl/aux_/range_c/back.hpp" +#include "boost/mpl/aux_/range_c/size.hpp" +#include "boost/mpl/aux_/range_c/O1_size.hpp" +#include "boost/mpl/aux_/range_c/empty.hpp" +#include "boost/mpl/aux_/range_c/iterator.hpp" +#include "boost/mpl/aux_/range_c/tag.hpp" + +namespace boost { +namespace mpl { + +template< + typename T + , T Start + , T Finish + > +struct range_c +{ + typedef aux::half_open_range_tag tag; + typedef range_c type; + + typedef integral_c start; + typedef integral_c finish; + + typedef range_c_iterator begin; + typedef range_c_iterator end; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_RANGE_C_HPP_INCLUDED diff --git a/include/boost/mpl/remove.hpp b/include/boost/mpl/remove.hpp new file mode 100644 index 0000000..94d8f9d --- /dev/null +++ b/include/boost/mpl/remove.hpp @@ -0,0 +1,41 @@ +//----------------------------------------------------------------------------- +// boost mpl/remove.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_REMOVE_HPP_INCLUDED +#define BOOST_MPL_REMOVE_HPP_INCLUDED + +#include "boost/mpl/remove_if.hpp" +#include "boost/mpl/same_as.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct remove + : remove_if< Sequence, same_as > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(2, remove) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_REMOVE_HPP_INCLUDED diff --git a/include/boost/mpl/remove_if.hpp b/include/boost/mpl/remove_if.hpp new file mode 100644 index 0000000..e0f0cc1 --- /dev/null +++ b/include/boost/mpl/remove_if.hpp @@ -0,0 +1,70 @@ +//----------------------------------------------------------------------------- +// boost mpl/remove_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_REMOVE_IF_HPP_INCLUDED +#define BOOST_MPL_REMOVE_IF_HPP_INCLUDED + +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/identity.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Pred > struct remove_if_helper +{ + template< typename Sequence, typename U > struct apply + { + typedef typename apply_if< + typename apply1::type + , identity + , push_front + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct remove_if +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename fold_backward< + Sequence + , typename clear::type + , protect< aux::remove_if_helper > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(2, remove_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_REMOVE_IF_HPP_INCLUDED diff --git a/include/boost/mpl/replace.hpp b/include/boost/mpl/replace.hpp new file mode 100644 index 0000000..83bee9e --- /dev/null +++ b/include/boost/mpl/replace.hpp @@ -0,0 +1,42 @@ +//----------------------------------------------------------------------------- +// boost mpl/replace.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy and John R. Bandela +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_REPLACE_HPP_INCLUDED +#define BOOST_MPL_REPLACE_HPP_INCLUDED + +#include "boost/mpl/replace_if.hpp" +#include "boost/mpl/same_as.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(OldType) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(NewType) + > +struct replace + : replace_if< Sequence,same_as,NewType > +{ +}; + +BOOST_MPL_AUX_VOID_SPEC(3, replace) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_REPLACE_HPP_INCLUDED diff --git a/include/boost/mpl/replace_if.hpp b/include/boost/mpl/replace_if.hpp new file mode 100644 index 0000000..4852a07 --- /dev/null +++ b/include/boost/mpl/replace_if.hpp @@ -0,0 +1,69 @@ +//----------------------------------------------------------------------------- +// boost mpl/replace_if.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy and John R. Bandela +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_REPLACE_IF_HPP_INCLUDED +#define BOOST_MPL_REPLACE_IF_HPP_INCLUDED + +#include "boost/mpl/transform.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/if.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Predicate, typename T > +struct replace_if_op +{ + template< typename U > struct apply + { + typedef typename if_< + typename apply1::type + , T + , U + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct replace_if +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename transform< + Sequence + , protect< aux::replace_if_op > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(3, replace_if) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_REPLACE_IF_HPP_INCLUDED diff --git a/include/boost/mpl/reverse.hpp b/include/boost/mpl/reverse.hpp new file mode 100644 index 0000000..9093b44 --- /dev/null +++ b/include/boost/mpl/reverse.hpp @@ -0,0 +1,49 @@ +//----------------------------------------------------------------------------- +// boost mpl/reverse.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_REVERSE_HPP_INCLUDED +#define BOOST_MPL_REVERSE_HPP_INCLUDED + +#include "boost/mpl/copy.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct reverse +{ + private: + typedef typename clear::type result_; + + public: + typedef typename copy< + Sequence + , result_ + , push_front<_,_> + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(1, reverse) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_REVERSE_HPP_INCLUDED diff --git a/include/boost/mpl/same_as.hpp b/include/boost/mpl/same_as.hpp new file mode 100644 index 0000000..f5c1a59 --- /dev/null +++ b/include/boost/mpl/same_as.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/same_as.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED +#define BOOST_MPL_SAME_AS_HPP_INCLUDED + +#include "boost/mpl/logical/not.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +template< typename T1 > +struct same_as +{ + template< typename T2 > struct apply +#if !defined(__BORLANDC__) + : is_same + { +#else + { + typedef typename is_same::type type; +#endif + }; +}; + +template< typename T1 > +struct not_same_as +{ + template< typename T2 > struct apply +#if !defined(__BORLANDC__) + : logical_not< is_same > + { +#else + { + typedef typename logical_not< is_same >::type type; +#endif + }; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,same_as) +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,not_same_as) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SAME_AS_HPP_INCLUDED diff --git a/include/boost/mpl/select1st.hpp b/include/boost/mpl/select1st.hpp new file mode 100644 index 0000000..7054688 --- /dev/null +++ b/include/boost/mpl/select1st.hpp @@ -0,0 +1,48 @@ +//----------------------------------------------------------------------------- +// boost mpl/select1st.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SELECT1ST_HPP_INCLUDED +#define BOOST_MPL_SELECT1ST_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Pair) + > +struct select1st +{ + typedef typename Pair::first type; + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,select1st,(Pair)) +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct select1st +{ + typedef select1st type; +}; +#endif + +BOOST_MPL_AUX_VOID_SPEC(1, select1st) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SELECT1ST_HPP_INCLUDED diff --git a/include/boost/mpl/select2nd.hpp b/include/boost/mpl/select2nd.hpp new file mode 100644 index 0000000..7a0360a --- /dev/null +++ b/include/boost/mpl/select2nd.hpp @@ -0,0 +1,38 @@ +//----------------------------------------------------------------------------- +// boost mpl/select2nd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SELECT2ND_HPP_INCLUDED +#define BOOST_MPL_SELECT2ND_HPP_INCLUDED + +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +template< + typename Pair + > +struct select2nd +{ + typedef typename Pair::second type; +}; + +BOOST_MPL_AUX_LAMBDA_SPEC(1, select2nd) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SELECT2ND_HPP_INCLUDED diff --git a/include/boost/mpl/sequence_tag.hpp b/include/boost/mpl/sequence_tag.hpp new file mode 100644 index 0000000..35cf8e5 --- /dev/null +++ b/include/boost/mpl/sequence_tag.hpp @@ -0,0 +1,46 @@ +//----------------------------------------------------------------------------- +// boost mpl/sequence_tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED +#define BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED + +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/config/eti.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct sequence_tag +{ + typedef typename Sequence::tag type; +}; + +#if defined(BOOST_MPL_MSVC_ETI_BUG) +template<> struct sequence_tag +{ + typedef int type; +}; +#endif + +BOOST_MPL_AUX_VOID_SPEC(1, sequence_tag) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SEQUENCE_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/size.hpp b/include/boost/mpl/size.hpp new file mode 100644 index 0000000..d2fc16f --- /dev/null +++ b/include/boost/mpl/size.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SIZE_HPP_INCLUDED +#define BOOST_MPL_SIZE_HPP_INCLUDED + +#include "boost/mpl/size_fwd.hpp" +#include "boost/mpl/aux_/size_impl.hpp" +#include "boost/mpl/aux_/sequence_tag.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + > +struct size + : size_traits< typename BOOST_MPL_AUX_SEQUENCE_TAG(Sequence) > + ::template algorithm< Sequence > +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,size,(Sequence)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, size) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/size_fwd.hpp b/include/boost/mpl/size_fwd.hpp new file mode 100644 index 0000000..b538c14 --- /dev/null +++ b/include/boost/mpl/size_fwd.hpp @@ -0,0 +1,29 @@ +//----------------------------------------------------------------------------- +// boost mpl/size_fwd.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SIZE_FWD_HPP_INCLUDED +#define BOOST_MPL_SIZE_FWD_HPP_INCLUDED + +namespace boost { +namespace mpl { + +template< typename Tag > struct size_traits; +template< typename Sequence > struct size; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SIZE_FWD_HPP_INCLUDED diff --git a/include/boost/mpl/size_of.hpp b/include/boost/mpl/size_of.hpp new file mode 100644 index 0000000..9b4cfbf --- /dev/null +++ b/include/boost/mpl/size_of.hpp @@ -0,0 +1,43 @@ +//----------------------------------------------------------------------------- +// boost mpl/size_of.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_SIZE_OF_HPP_INCLUDED +#define BOOST_MPL_SIZE_OF_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_support.hpp" + +#include // for std::size_t + +namespace boost { +namespace mpl { + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + > +struct size_of + : mpl::integral_c +{ + BOOST_MPL_AUX_LAMBDA_SUPPORT(1,size_of,(T)) +}; + +BOOST_MPL_AUX_VOID_SPEC(1, size_of) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_SIZE_OF_HPP_INCLUDED diff --git a/include/boost/mpl/transform.hpp b/include/boost/mpl/transform.hpp new file mode 100644 index 0000000..b12f621 --- /dev/null +++ b/include/boost/mpl/transform.hpp @@ -0,0 +1,70 @@ +//----------------------------------------------------------------------------- +// boost mpl/transform.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_TRANSFORM_HPP_INCLUDED +#define BOOST_MPL_TRANSFORM_HPP_INCLUDED + +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/protect.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Op > +struct transform_op +{ + template< typename Sequence, typename T > struct apply + { + typedef typename push_front< + Sequence + , typename apply1::type + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Operation) + > +struct transform +{ + private: + typedef typename lambda::type op_; + typedef typename clear::type result_; + + public: + typedef typename fold_backward< + Sequence + , result_ + , protect< aux::transform_op > + >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(2, transform) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TRANSFORM_HPP_INCLUDED diff --git a/include/boost/mpl/transform_view.hpp b/include/boost/mpl/transform_view.hpp new file mode 100644 index 0000000..47ee2b5 --- /dev/null +++ b/include/boost/mpl/transform_view.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/transform_view.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED +#define BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED + +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" + +namespace boost { +namespace mpl { + +template< typename Iterator, typename F > +struct transform_iter +{ + typedef Iterator base; + typedef typename base::category category; + typedef transform_iter next; + + typedef typename apply1< + F + , typename base::type + >::type type; +}; + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(F) + > +struct transform_view +{ + struct tag; + typedef transform_view type; + typedef typename lambda::type f_; + typedef transform_iter< typename begin::type,f_ > begin; + typedef transform_iter< typename end::type,f_ > end; +}; + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,transform_iter) +BOOST_MPL_AUX_VOID_SPEC(2, transform_view) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TRANSFORM_VIEW_HPP_INCLUDED diff --git a/include/boost/mpl/unique.hpp b/include/boost/mpl/unique.hpp new file mode 100644 index 0000000..d30fa01 --- /dev/null +++ b/include/boost/mpl/unique.hpp @@ -0,0 +1,88 @@ +//----------------------------------------------------------------------------- +// boost mpl/unique.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy and John R. Bandela +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_UNIQUE_HPP_INCLUDED +#define BOOST_MPL_UNIQUE_HPP_INCLUDED + +#include "boost/mpl/fold_backward.hpp" +#include "boost/mpl/push_front.hpp" +#include "boost/mpl/clear.hpp" +#include "boost/mpl/front.hpp" +#include "boost/mpl/identity.hpp" +#include "boost/mpl/pair.hpp" +#include "boost/mpl/select1st.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/void_spec.hpp" +#include "boost/mpl/aux_/lambda_spec.hpp" +#include "boost/type_traits/is_same.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +template< typename Predicate > +struct unique_op +{ + template< typename Pair, typename T > struct apply + { + typedef typename Pair::first seq_; + typedef typename Pair::second prior_; + typedef typename apply_if< + typename apply2::type + , identity + , push_front + >::type new_seq_; + + typedef pair type; + }; +}; + +} // namespace aux + +BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,aux::unique_op) + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename Predicate = is_same<_,_> + > +struct unique +{ + private: + struct none_; + typedef typename lambda::type pred_; + typedef typename clear::type result_; + typedef typename fold_backward< + Sequence + , pair + , aux::unique_op + >::type fold_result_; + + public: + // MSVC6.5 forces us to use 'select1st::type' instead of + // simple 'fold_result_::first' here + typedef typename select1st::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(1, unique) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_UNIQUE_HPP_INCLUDED diff --git a/include/boost/mpl/upper_bound.hpp b/include/boost/mpl/upper_bound.hpp new file mode 100644 index 0000000..183208f --- /dev/null +++ b/include/boost/mpl/upper_bound.hpp @@ -0,0 +1,103 @@ +//----------------------------------------------------------------------------- +// boost mpl/upper_bound.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_UPPER_BOUND_HPP_INCLUDED +#define BOOST_MPL_UPPER_BOUND_HPP_INCLUDED + +#include "boost/mpl/size.hpp" +#include "boost/mpl/advance.hpp" +#include "boost/mpl/begin_end.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/lambda.hpp" +#include "boost/mpl/apply_if.hpp" +#include "boost/mpl/apply.hpp" +#include "boost/mpl/aux_/apply.hpp" +#include "boost/mpl/aux_/deref_wknd.hpp" +#include "boost/mpl/aux_/void_spec.hpp" + +namespace boost { +namespace mpl { + +namespace aux { + +// agurt, 31/mar/02: to workwaround VC7.0 early template instantiation bug +template< long Distance > +struct upper_bound_step; + +template<> +struct upper_bound_step<0> +{ + template< + typename Predicate + , typename T + , typename DeferredIterator + > + struct result_ + { + typedef typename DeferredIterator::type type; + }; +}; + +template< long Distance > +struct upper_bound_step +{ + template< + typename Predicate + , typename T + , typename DeferredIterator + > + struct result_ + { + typedef integral_c offset_; + typedef typename DeferredIterator::type iter_; + typedef typename advance::type middle_; + typedef typename apply_if< + typename BOOST_MPL_AUX_APPLY2( + Predicate + , T + , typename BOOST_MPL_AUX_DEREF_WNKD(middle_) + )::type + , typename upper_bound_step + ::template result_< Predicate,T,DeferredIterator > + , typename upper_bound_step + ::template result_< Predicate,T,next > + >::type type; + }; +}; + +} // namespace aux + +template< + typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Sequence) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) + , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Predicate) + > +struct upper_bound +{ + private: + typedef typename lambda::type pred_; + + public: + typedef typename aux::upper_bound_step< size::value > + ::template result_< pred_,T,begin >::type type; +}; + +BOOST_MPL_AUX_VOID_SPEC(3, upper_bound) + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_UPPER_BOUND_HPP_INCLUDED diff --git a/include/boost/mpl/vector.hpp b/include/boost/mpl/vector.hpp new file mode 100644 index 0000000..4685e94 --- /dev/null +++ b/include/boost/mpl/vector.hpp @@ -0,0 +1,217 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_VECTOR_HPP_INCLUDED +#define BOOST_MPL_VECTOR_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/limits/vector.hpp" +# include "boost/mpl/void.hpp" + +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/stringize.hpp" + +# define MPL_AUX_VECTOR_HEADER \ + BOOST_PP_STRINGIZE( \ + BOOST_PP_CAT( \ + BOOST_PP_CAT(boost/mpl/vector/vector, BOOST_MPL_LIMIT_VECTOR_SIZE) \ + ,.##hpp) \ + ) \ + /**/ + +# include MPL_AUX_VECTOR_HEADER +# undef MPL_AUX_VECTOR_HEADER +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER vector.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/vector.hpp" +# include "boost/mpl/aux_/preprocessor/project1st.hpp" + +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/enum_params_with_a_default.hpp" +# include "boost/preprocessor/enum_params.hpp" +# include "boost/preprocessor/enum.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/iterate.hpp" + +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define AUX_VECTOR_PARAMS(param) \ + BOOST_PP_ENUM_PARAMS( \ + BOOST_MPL_LIMIT_VECTOR_SIZE \ + , param \ + ) \ + /**/ + +# define AUX_VECTOR_DEFAULT_PARAMS(param, value) \ + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ + BOOST_MPL_LIMIT_VECTOR_SIZE \ + , param \ + , value \ + ) \ + /**/ + +# define AUX_VECTOR_N_PARAMS(n, param) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + /**/ + +# define AUX_VECTOR_N_PARTIAL_SPEC_PARAMS(n, param, def) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM( \ + BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_VECTOR_SIZE,n) \ + , BOOST_MPL_PP_PROJECT2ND \ + , def \ + ) \ + /**/ + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< + AUX_VECTOR_DEFAULT_PARAMS(typename T, void_) + > +struct vector; +#else +namespace aux { +template< int > struct vector_impl_chooser; +} +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_VECTOR_SIZE, "boost/mpl/vector.hpp")) +#include BOOST_PP_ITERATE() + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { +// vector_count_args +#define BOOST_MPL_AUX_COUNT_ARGS_PREFIX vector +#define BOOST_MPL_AUX_COUNT_ARGS_DEFAULT void_ +#define BOOST_MPL_AUX_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_VECTOR_SIZE +#define BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES +#include "boost/mpl/aux_/count_args.hpp" + +template< + AUX_VECTOR_PARAMS(typename T) + > +struct vector_impl +{ + typedef aux::vector_count_args< AUX_VECTOR_PARAMS(T) > arg_num_; + typedef typename aux::vector_impl_chooser< arg_num_::value > + ::template result_< AUX_VECTOR_PARAMS(T) >::type type; +}; + +} // namespace aux + +template< + AUX_VECTOR_DEFAULT_PARAMS(typename T, void_) + > +struct vector + : aux::vector_impl< AUX_VECTOR_PARAMS(T) >::type +{ + typedef typename aux::vector_impl< + AUX_VECTOR_PARAMS(T) + >::type type; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef AUX_VECTOR_N_PARTIAL_SPEC_PARAMS +# undef AUX_VECTOR_N_PARAMS +# undef AUX_VECTOR_DEFAULT_PARAMS +# undef AUX_VECTOR_PARAMS + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_VECTOR_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i == BOOST_MPL_LIMIT_VECTOR_SIZE + +//: primary template (not a specialization!) +template< + AUX_VECTOR_N_PARAMS(i, typename T) + > +struct vector + : BOOST_PP_CAT(vector,i)< AUX_VECTOR_N_PARAMS(i, T) > +{ + typedef BOOST_PP_CAT(vector,i)< AUX_VECTOR_N_PARAMS(i, T) > type; +}; + +#else + +template< + AUX_VECTOR_N_PARAMS(i, typename T) + > +struct vector< AUX_VECTOR_N_PARTIAL_SPEC_PARAMS(i, T, void_) > + : BOOST_PP_CAT(vector,i)< AUX_VECTOR_N_PARAMS(i, T) > +{ + typedef BOOST_PP_CAT(vector,i)< AUX_VECTOR_N_PARAMS(i, T) > type; +}; + +#endif // i == BOOST_MPL_LIMIT_VECTOR_SIZE + +# else + +namespace aux { + +template<> +struct vector_impl_chooser +{ + template< + AUX_VECTOR_PARAMS(typename T) + > + struct result_ + { + typedef BOOST_PP_CAT(vector,i)< + AUX_VECTOR_N_PARAMS(i, T) + > type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/vector/aux_/O1_size.hpp b/include/boost/mpl/vector/aux_/O1_size.hpp new file mode 100644 index 0000000..1c3530d --- /dev/null +++ b/include/boost/mpl/vector/aux_/O1_size.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/O1_size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED + +#include "boost/mpl/O1_size_fwd.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct O1_size_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : Vector::size + { + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct O1_size_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : integral_c + { + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_O1_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/at.hpp b/include/boost/mpl/vector/aux_/at.hpp new file mode 100644 index 0000000..16bbfcf --- /dev/null +++ b/include/boost/mpl/vector/aux_/at.hpp @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/at.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED + +#include "boost/mpl/at_fwd.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/vector/aux_/item.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct at_traits< aux::vector_tag > +{ + template< typename N, typename Vector > struct algorithm + : vector_item< + Vector + , BOOST_MPL_AUX_VALUE_WKND(N)::value + > + { + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long S > +struct at_traits< aux::vector_tag > +{ + template< typename N, typename Vector > struct algorithm +#if !defined(__BORLANDC__) + : vector_item< + Vector + , BOOST_MPL_AUX_VALUE_WKND(N)::value + > + { +#else + { + typedef typename vector_item< + Vector + , BOOST_MPL_AUX_VALUE_WKND(N)::value + >::type type; +#endif + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_AT_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/back.hpp b/include/boost/mpl/vector/aux_/back.hpp new file mode 100644 index 0000000..ef3ed20 --- /dev/null +++ b/include/boost/mpl/vector/aux_/back.hpp @@ -0,0 +1,65 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED + +#include "boost/mpl/back_fwd.hpp" +#include "boost/mpl/aux_/prior.hpp" +#include "boost/mpl/aux_/nested_type_wknd.hpp" +#include "boost/mpl/vector/aux_/item.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct back_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : vector_item< + Vector + , BOOST_MPL_AUX_NESTED_TYPE_WKND(BOOST_MPL_AUX_PRIOR(Vector::size))::value + > + { + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct back_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/begin_end.hpp b/include/boost/mpl/vector/aux_/begin_end.hpp new file mode 100644 index 0000000..d9adb4d --- /dev/null +++ b/include/boost/mpl/vector/aux_/begin_end.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/begin_end.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED + +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/begin_end_fwd.hpp" +# include "boost/mpl/integral_c.hpp" +# include "boost/mpl/vector/aux_/iterator.hpp" +# include "boost/mpl/vector/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct begin_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef vector_iterator< + Vector + , integral_c + > type; + }; +}; + +template<> +struct end_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef vector_iterator< + Vector + , typename Vector::size + > type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_BEGIN_END_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/clear.hpp b/include/boost/mpl/vector/aux_/clear.hpp new file mode 100644 index 0000000..d6afe59 --- /dev/null +++ b/include/boost/mpl/vector/aux_/clear.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/clear.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED + +#include "boost/mpl/clear_fwd.hpp" +#include "boost/mpl/vector/aux_/vector0.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct clear_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct clear_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_CLEAR_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/empty.hpp b/include/boost/mpl/vector/aux_/empty.hpp new file mode 100644 index 0000000..f5d9127 --- /dev/null +++ b/include/boost/mpl/vector/aux_/empty.hpp @@ -0,0 +1,70 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/empty.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED + +#include "boost/mpl/empty_fwd.hpp" +#include "boost/mpl/logical/not.hpp" +#include "boost/mpl/bool_c.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct empty_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : logical_not< typename Vector::size > + { + }; +}; + +#else + +template<> +struct empty_traits< aux::vector_tag<0> > +{ + template< typename Vector > struct algorithm + : true_c + { + }; +}; + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct empty_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/front.hpp b/include/boost/mpl/vector/aux_/front.hpp new file mode 100644 index 0000000..44f7482 --- /dev/null +++ b/include/boost/mpl/vector/aux_/front.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED +#define BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED + +#include "boost/mpl/front_fwd.hpp" +#include "boost/mpl/vector/aux_/item.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct front_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : vector_item + { + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct front_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::item0 type; + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_LIST_AUX_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/item.hpp b/include/boost/mpl/vector/aux_/item.hpp new file mode 100644 index 0000000..affce76 --- /dev/null +++ b/include/boost/mpl/vector/aux_/item.hpp @@ -0,0 +1,68 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/item.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template< typename V, long N > +struct vector_item +{ + typedef __typeof__(V::item(integral_c())) wrapped_type_; + typedef typename wrapped_type_::type type; +}; + +#else + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +// forward declaration +template< typename T, long N > +struct vector_item; + +# else + +namespace aux { + +template< long N > struct vector_item_impl +{ + template< typename V > struct result_; +}; + +} // namespace aux + +template< typename T, long N > +struct vector_item + : aux::vector_item_impl::template result_ +{ +}; + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_ITEM_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/iterator.hpp b/include/boost/mpl/vector/aux_/iterator.hpp new file mode 100644 index 0000000..b023c34 --- /dev/null +++ b/include/boost/mpl/vector/aux_/iterator.hpp @@ -0,0 +1,65 @@ +//----------------------------------------------------------------------------- +// boost mpl/aux_/vector/iterator.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED +#define BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED + +#include "boost/mpl/iterator_tag.hpp" +#include "boost/mpl/arithmetic/plus.hpp" +#include "boost/mpl/arithmetic/minus.hpp" +#include "boost/mpl/aux_/iterator_names.hpp" +#include "boost/mpl/aux_/value_wknd.hpp" +#include "boost/mpl/vector/aux_/item.hpp" + +namespace boost { +namespace mpl { + +template< + typename Vector + , typename Pos + > +struct vector_iterator +{ + typedef ra_iter_tag_ category; + typedef typename vector_item< + Vector + , BOOST_MPL_AUX_VALUE_WKND(Pos)::value + >::type type; + + typedef Pos pos; + typedef vector_iterator next; + typedef vector_iterator prior; + + template< typename Distance > + struct BOOST_MPL_AUX_ITERATOR_ADVANCE + { + typedef vector_iterator< + Vector + , typename plus::type + > type; + }; + + template< typename Other > + struct BOOST_MPL_AUX_ITERATOR_DISTANCE + { + typedef typename minus::type type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_AUX_VECTOR_ITERATOR_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/node.hpp b/include/boost/mpl/vector/aux_/node.hpp new file mode 100644 index 0000000..51a0009 --- /dev/null +++ b/include/boost/mpl/vector/aux_/node.hpp @@ -0,0 +1,53 @@ +//----------------------------------------------------------------------------- +// boost mpl/list/aux_/node.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_NODE_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_NODE_HPP_INCLUDED + +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/aux_/next.hpp" +# include "boost/mpl/aux_/type_wrapper.hpp" +# include "boost/mpl/vector/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template< + long Size + , typename T + , typename Base + > +struct vector_node + : Base +{ + using Base::item; + static aux::type_wrapper item(typename Base::size); + + typedef aux::vector_tag tag; + typedef integral_c size; + typedef vector_node type; + typedef Base base; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_NODE_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/numbered.hpp b/include/boost/mpl/vector/aux_/numbered.hpp new file mode 100644 index 0000000..b5fe6b5 --- /dev/null +++ b/include/boost/mpl/vector/aux_/numbered.hpp @@ -0,0 +1,185 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/numbered.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if defined(BOOST_PP_IS_ITERATING) + +#include "boost/preprocessor/enum_params.hpp" +#include "boost/preprocessor/enum_shifted_params.hpp" +#include "boost/preprocessor/comma_if.hpp" +#include "boost/preprocessor/repeat.hpp" +#include "boost/preprocessor/dec.hpp" +#include "boost/preprocessor/cat.hpp" + +#define i BOOST_PP_FRAME_ITERATION(1) + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# define MPL_AUX_VECTOR_TAIL(vector, i, T) \ + BOOST_PP_CAT(vector,BOOST_PP_DEC(i))< \ + BOOST_PP_ENUM_SHIFTED_PARAMS(i, T) \ + > \ + /**/ + +#if i > 0 +template< + BOOST_PP_ENUM_PARAMS(i, typename T) + > +struct BOOST_PP_CAT(vector,i) + : vector_node< + i + , T0 + , MPL_AUX_VECTOR_TAIL(vector,i,T) + > +{ +}; +#endif + +# undef MPL_AUX_VECTOR_TAIL + +#else // "brute force" implementation + +# if i > 0 + +template< + BOOST_PP_ENUM_PARAMS(i, typename T) + > +struct BOOST_PP_CAT(vector,i) +{ + typedef aux::vector_tag tag; + typedef BOOST_PP_CAT(vector,i) type; + +# define AUX_VECTOR_ITEM(i, unused) \ + typedef BOOST_PP_CAT(T,i) BOOST_PP_CAT(item,i); \ + /**/ + + BOOST_PP_REPEAT_1ST(i, AUX_VECTOR_ITEM, unused) +# undef AUX_VECTOR_ITEM + typedef void_ BOOST_PP_CAT(item,i); + typedef BOOST_PP_CAT(T,BOOST_PP_DEC(i)) back; + + // Borland forces us to use |type| here (instead of the class name) + typedef vector_iterator< type,integral_c > begin; + typedef vector_iterator< type,integral_c > end; +}; + +template<> +struct push_front_traits< aux::vector_tag > +{ + template< typename Vector, typename T > struct algorithm + { + typedef BOOST_PP_CAT(vector,i)< + T + BOOST_PP_COMMA_IF(BOOST_PP_DEC(i)) + BOOST_PP_ENUM_PARAMS(BOOST_PP_DEC(i), typename Vector::item) + > type; + }; +}; + +template<> +struct pop_front_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef BOOST_PP_CAT(vector,BOOST_PP_DEC(i))< + BOOST_PP_ENUM_SHIFTED_PARAMS(i, typename Vector::item) + > type; + }; +}; + +# endif // i > 0 + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< typename V > +struct vector_item +{ + typedef typename V::BOOST_PP_CAT(item,i) type; +}; + +# else + +namespace aux { +template<> struct vector_item_impl +{ + template< typename V > struct result_ + { + typedef typename V::BOOST_PP_CAT(item,i) type; + }; +}; +} + +#if i > 0 +template<> +struct front_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::front type; + }; +}; + +template<> +struct back_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::back type; + }; +}; + +template<> +struct empty_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : false_c + { + }; +}; +#endif + +template<> +struct size_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : integral_c + { + }; +}; + +template<> +struct O1_size_traits< aux::vector_tag > + : size_traits< aux::vector_tag > +{ +}; + +template<> +struct clear_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef vector0<> type; + }; +}; + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#undef i + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/vector/aux_/numbered_c.hpp b/include/boost/mpl/vector/aux_/numbered_c.hpp new file mode 100644 index 0000000..49d97ab --- /dev/null +++ b/include/boost/mpl/vector/aux_/numbered_c.hpp @@ -0,0 +1,75 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/numbered_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +// no include guards, the header is intended for multiple inclusion! + +#if defined(BOOST_PP_IS_ITERATING) + +#include "boost/preprocessor/enum_params.hpp" +#include "boost/preprocessor/enum_shifted_params.hpp" +#include "boost/preprocessor/comma_if.hpp" +#include "boost/preprocessor/repeat.hpp" +#include "boost/preprocessor/dec.hpp" +#include "boost/preprocessor/cat.hpp" + +#define i BOOST_PP_FRAME_ITERATION(1) + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# define MPL_AUX_VECTOR_TAIL(vector, i, C) \ + BOOST_PP_CAT(BOOST_PP_CAT(vector,BOOST_PP_DEC(i)),_c) \ + /**/ + +template< + typename T + , BOOST_PP_ENUM_PARAMS(i, T C) + > +struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i),_c) + : vector_node< + i + , integral_c + , MPL_AUX_VECTOR_TAIL(vector,i,C) + > +{ +}; + +# undef MPL_AUX_VECTOR_TAIL + +#else // "brute force" implementation + +# define MPL_AUX_VECTOR_C_PARAM_FUNC(i,param) \ + BOOST_PP_COMMA_IF(i) \ + integral_c \ + /**/ + +template< + typename T + , BOOST_PP_ENUM_PARAMS(i, T C) + > +struct BOOST_PP_CAT(BOOST_PP_CAT(vector,i),_c) + : BOOST_PP_CAT(vector,i)< BOOST_PP_REPEAT_1ST(i,MPL_AUX_VECTOR_C_PARAM_FUNC,C) > +{ +}; + +# undef MPL_AUX_VECTOR_C_PARAM_FUNC + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#undef i + +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/vector/aux_/pop_back.hpp b/include/boost/mpl/vector/aux_/pop_back.hpp new file mode 100644 index 0000000..abbaa24 --- /dev/null +++ b/include/boost/mpl/vector/aux_/pop_back.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/pop_back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED + +#include "boost/mpl/pop_back_fwd.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct pop_back_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::base type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_POP_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/pop_front.hpp b/include/boost/mpl/vector/aux_/pop_front.hpp new file mode 100644 index 0000000..8fcff26 --- /dev/null +++ b/include/boost/mpl/vector/aux_/pop_front.hpp @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/pop_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED + +#include "boost/mpl/pop_front_fwd.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct pop_front_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + { + typedef typename Vector::base type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_POP_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/push_back.hpp b/include/boost/mpl/vector/aux_/push_back.hpp new file mode 100644 index 0000000..f452677 --- /dev/null +++ b/include/boost/mpl/vector/aux_/push_back.hpp @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/push_back.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED + +#include "boost/mpl/push_back_fwd.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/vector/aux_/node.hpp" +# include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct push_back_traits< aux::vector_tag > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector_node type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_PUSH_BACK_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/push_front.hpp b/include/boost/mpl/vector/aux_/push_front.hpp new file mode 100644 index 0000000..c5b02fd --- /dev/null +++ b/include/boost/mpl/vector/aux_/push_front.hpp @@ -0,0 +1,50 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/push_front.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED + +#include "boost/mpl/push_front_fwd.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +# include "boost/mpl/aux_/next.hpp" +# include "boost/mpl/vector/aux_/node.hpp" +# include "boost/mpl/list/aux_/tag.hpp" + +namespace boost { +namespace mpl { + +template<> +struct push_front_traits< aux::vector_tag > +{ + template< typename Vector, typename T > struct algorithm + { + typedef vector_node< + BOOST_MPL_AUX_NEXT(Vector::size)::value + , T + , Vector + > type; + }; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +#endif // BOOST_MPL_VECTOR_AUX_PUSH_FRONT_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/size.hpp b/include/boost/mpl/vector/aux_/size.hpp new file mode 100644 index 0000000..6979075 --- /dev/null +++ b/include/boost/mpl/vector/aux_/size.hpp @@ -0,0 +1,60 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/size.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED + +#include "boost/mpl/size_fwd.hpp" +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" +#include "boost/config.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template<> +struct size_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : Vector::size + { + }; +}; + +#else + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +template< long N > +struct size_traits< aux::vector_tag > +{ + template< typename Vector > struct algorithm + : integral_c + { + }; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_SIZE_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/tag.hpp b/include/boost/mpl/vector/aux_/tag.hpp new file mode 100644 index 0000000..1a22d63 --- /dev/null +++ b/include/boost/mpl/vector/aux_/tag.hpp @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/tag.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED + +#include "boost/mpl/aux_/config/vector.hpp" + +namespace boost { +namespace mpl { +namespace aux { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +struct vector_tag; +#else +template< long N > struct vector_tag; +#endif + +} // namespace aux +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_TAG_HPP_INCLUDED diff --git a/include/boost/mpl/vector/aux_/vector0.hpp b/include/boost/mpl/vector/aux_/vector0.hpp new file mode 100644 index 0000000..0f48f01 --- /dev/null +++ b/include/boost/mpl/vector/aux_/vector0.hpp @@ -0,0 +1,61 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/aux_/vector0.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED +#define BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED + +#include "boost/mpl/integral_c.hpp" +#include "boost/mpl/void.hpp" +#include "boost/mpl/aux_/type_wrapper.hpp" + +#include "boost/mpl/vector/aux_/iterator.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +namespace boost { +namespace mpl { + +#if defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) + +template< typename Dummy = void_ > struct vector0; +template<> struct vector0 +{ + static aux::type_wrapper item(...); + + typedef aux::vector_tag tag; + typedef integral_c size; + typedef vector0 type; +}; + +#else + +template< typename Dummy = void_ > struct vector0; +template<> struct vector0 +{ + typedef aux::vector_tag<0> tag; + typedef vector0 type; + typedef void_ item0; + + typedef vector_iterator< vector0,integral_c > begin; + typedef vector_iterator< vector0,integral_c > end; +}; + +#endif // BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_AUX_VECTOR0_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector0.hpp b/include/boost/mpl/vector/vector0.hpp new file mode 100644 index 0000000..7695594 --- /dev/null +++ b/include/boost/mpl/vector/vector0.hpp @@ -0,0 +1,35 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector0.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED + +#include "boost/mpl/vector/aux_/at.hpp" +#include "boost/mpl/vector/aux_/front.hpp" +#include "boost/mpl/vector/aux_/push_front.hpp" +#include "boost/mpl/vector/aux_/pop_front.hpp" +#include "boost/mpl/vector/aux_/back.hpp" +#include "boost/mpl/vector/aux_/clear.hpp" +#include "boost/mpl/vector/aux_/O1_size.hpp" +#include "boost/mpl/vector/aux_/size.hpp" +#include "boost/mpl/vector/aux_/empty.hpp" +#include "boost/mpl/vector/aux_/item.hpp" +#include "boost/mpl/vector/aux_/iterator.hpp" +#include "boost/mpl/vector/aux_/vector0.hpp" +#include "boost/mpl/vector/aux_/begin_end.hpp" +#include "boost/mpl/vector/aux_/tag.hpp" + +#endif // BOOST_MPL_VECTOR_VECTOR0_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector0_c.hpp b/include/boost/mpl/vector/vector0_c.hpp new file mode 100644 index 0000000..8cf2310 --- /dev/null +++ b/include/boost/mpl/vector/vector0_c.hpp @@ -0,0 +1,34 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector0_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED + +#include "boost/mpl/vector/vector0.hpp" + +namespace boost { +namespace mpl { + +template< typename T > struct vector0_c + : vector0<> +{ + typedef vector0_c type; +}; + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VECTOR_VECTOR0_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector10.hpp b/include/boost/mpl/vector/vector10.hpp new file mode 100644 index 0000000..a47e656 --- /dev/null +++ b/include/boost/mpl/vector/vector10.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector10.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector0.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector10.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector10.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, 10, "boost/mpl/vector/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR10_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector10_c.hpp b/include/boost/mpl/vector/vector10_c.hpp new file mode 100644 index 0000000..fca30ec --- /dev/null +++ b/include/boost/mpl/vector/vector10_c.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector10_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector0_c.hpp" +# include "boost/mpl/vector/vector10.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector10_c.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector10_c.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(1, 10, "boost/mpl/vector/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR10_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector20.hpp b/include/boost/mpl/vector/vector20.hpp new file mode 100644 index 0000000..4459f8a --- /dev/null +++ b/include/boost/mpl/vector/vector20.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector20.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector10.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector20.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector20.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(11, 20, "boost/mpl/vector/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR20_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector20_c.hpp b/include/boost/mpl/vector/vector20_c.hpp new file mode 100644 index 0000000..b8cb55b --- /dev/null +++ b/include/boost/mpl/vector/vector20_c.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector20_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector10_c.hpp" +# include "boost/mpl/vector/vector20.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector20_c.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector20_c.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(11, 20, "boost/mpl/vector/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR20_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector30.hpp b/include/boost/mpl/vector/vector30.hpp new file mode 100644 index 0000000..6eff7e1 --- /dev/null +++ b/include/boost/mpl/vector/vector30.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector30.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector20.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector30.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector30.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(21, 30, "boost/mpl/vector/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR30_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector30_c.hpp b/include/boost/mpl/vector/vector30_c.hpp new file mode 100644 index 0000000..2600018 --- /dev/null +++ b/include/boost/mpl/vector/vector30_c.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector30_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector20_c.hpp" +# include "boost/mpl/vector/vector30.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector30_c.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector30_c.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(21, 30, "boost/mpl/vector/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR30_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector40.hpp b/include/boost/mpl/vector/vector40.hpp new file mode 100644 index 0000000..3df86ea --- /dev/null +++ b/include/boost/mpl/vector/vector40.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector40.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector30.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector40.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector40.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(31, 40, "boost/mpl/vector/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR40_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector40_c.hpp b/include/boost/mpl/vector/vector40_c.hpp new file mode 100644 index 0000000..2577a81 --- /dev/null +++ b/include/boost/mpl/vector/vector40_c.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector40_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector30_c.hpp" +# include "boost/mpl/vector/vector40.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector40_c.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector40_c.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(31, 40, "boost/mpl/vector/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR40_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector50.hpp b/include/boost/mpl/vector/vector50.hpp new file mode 100644 index 0000000..96b18f0 --- /dev/null +++ b/include/boost/mpl/vector/vector50.hpp @@ -0,0 +1,54 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector50.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector40.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector50.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector50.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(41, 50, "boost/mpl/vector/aux_/numbered.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR50_HPP_INCLUDED diff --git a/include/boost/mpl/vector/vector50_c.hpp b/include/boost/mpl/vector/vector50_c.hpp new file mode 100644 index 0000000..1550edf --- /dev/null +++ b/include/boost/mpl/vector/vector50_c.hpp @@ -0,0 +1,55 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector/vector50_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/vector/vector40_c.hpp" +# include "boost/mpl/vector/vector50.hpp" +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" +#include "boost/mpl/aux_/config/vector.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# if !defined(BOOST_MPL_TYPEOF_BASED_VECTOR_IMPL) +# define BOOST_MPL_PREPROCESSED_HEADER vector50_c.hpp +# else +# define BOOST_MPL_PREPROCESSED_HEADER lite_vector50_c.hpp +# endif +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/preprocessor/iterate.hpp" +# include "boost/config.hpp" + +namespace boost { +namespace mpl { + +# define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(41, 50, "boost/mpl/vector/aux_/numbered_c.hpp")) +# include BOOST_PP_ITERATE() + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS + +#endif // BOOST_MPL_VECTOR_VECTOR50_C_HPP_INCLUDED diff --git a/include/boost/mpl/vector_c.hpp b/include/boost/mpl/vector_c.hpp new file mode 100644 index 0000000..c820d23 --- /dev/null +++ b/include/boost/mpl/vector_c.hpp @@ -0,0 +1,234 @@ +//----------------------------------------------------------------------------- +// boost mpl/vector_c.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2000-02 +// Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#if !defined(BOOST_PP_IS_ITERATING) + +///// header body + +#ifndef BOOST_MPL_VECTOR_C_HPP_INCLUDED +#define BOOST_MPL_VECTOR_C_HPP_INCLUDED + +#if !defined(BOOST_MPL_PREPROCESSING_MODE) +# include "boost/mpl/limits/vector.hpp" + +# include "boost/preprocessor/inc.hpp" +# include "boost/preprocessor/cat.hpp" +# include "boost/preprocessor/stringize.hpp" + +# define MPL_AUX_VECTOR_HEADER \ + BOOST_PP_STRINGIZE( \ + BOOST_PP_CAT( \ + BOOST_PP_CAT(boost/mpl/vector/vector, BOOST_MPL_LIMIT_VECTOR_SIZE) \ + ,_c.##hpp) \ + ) \ + /**/ + +# include MPL_AUX_VECTOR_HEADER +# undef MPL_AUX_VECTOR_HEADER +# include +#endif + +#include "boost/mpl/aux_/config/use_preprocessed.hpp" + +#if defined(BOOST_MPL_USE_PREPROCESSED_HEADERS) && \ + !defined(BOOST_MPL_PREPROCESSING_MODE) + +# define BOOST_MPL_PREPROCESSED_HEADER vector_c.hpp +# include "boost/mpl/aux_/include_preprocessed.hpp" + +#else + +# include "boost/mpl/limits/vector.hpp" +# include "boost/mpl/aux_/preprocessor/project1st.hpp" + +# include "boost/preprocessor/arithmetic/sub.hpp" +# include "boost/preprocessor/enum_params_with_a_default.hpp" +# include "boost/preprocessor/enum_params.hpp" +# include "boost/preprocessor/enum.hpp" +# include "boost/preprocessor/repeat.hpp" +# include "boost/preprocessor/comma_if.hpp" +# include "boost/preprocessor/iterate.hpp" + +# include "boost/config.hpp" + +#if defined(BOOST_MPL_PREPROCESSING_MODE) +# undef LONG_MAX +#endif + +namespace boost { +namespace mpl { + +# define AUX_VECTOR_C(i) \ + BOOST_PP_CAT(BOOST_PP_CAT(vector,i),_c) \ + /**/ + +# define AUX_VECTOR_C_PARAMS(param) \ + BOOST_PP_ENUM_PARAMS( \ + BOOST_MPL_LIMIT_VECTOR_SIZE \ + , param \ + ) \ + /**/ + +# define AUX_VECTOR_C_DEFAULT_PARAMS(param, value) \ + BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \ + BOOST_MPL_LIMIT_VECTOR_SIZE \ + , param \ + , value \ + ) \ + /**/ + +# define AUX_VECTOR_C_N_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + /**/ + +# define AUX_VECTOR_C_N_PARTIAL_SPEC_PARAMS(n, param, def) \ + BOOST_PP_ENUM_PARAMS(n, param) \ + BOOST_PP_COMMA_IF(n) \ + BOOST_PP_ENUM( \ + BOOST_PP_SUB_D(1,BOOST_MPL_LIMIT_VECTOR_SIZE,n) \ + , BOOST_MPL_PP_PROJECT2ND \ + , def \ + ) \ + /**/ + +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) +// forward declaration +template< + typename T + , AUX_VECTOR_C_DEFAULT_PARAMS(long C, LONG_MAX) + > +struct vector_c; +#else +namespace aux { +template< int > struct vector_c_impl_chooser; +} +#endif + +#define BOOST_PP_ITERATION_PARAMS_1 \ + (3,(0, BOOST_MPL_LIMIT_VECTOR_SIZE, "boost/mpl/vector_c.hpp")) +#include BOOST_PP_ITERATE() + +// real C++ version is already taken care of +#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +namespace aux { +// vector_count_args +#define BOOST_MPL_AUX_COUNT_ARGS_PREFIX vector_c +#define BOOST_MPL_AUX_COUNT_ARGS_DEFAULT LONG_MAX +#define BOOST_MPL_AUX_COUNT_ARGS_TEMPLATE_PARAM long T +#define BOOST_MPL_AUX_COUNT_ARGS_ARITY BOOST_MPL_LIMIT_VECTOR_SIZE +#define BOOST_MPL_AUX_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES +#include "boost/mpl/aux_/count_args.hpp" + +template< + typename T + , AUX_VECTOR_C_PARAMS(long C) + > +struct vector_c_impl +{ + typedef aux::vector_c_count_args< AUX_VECTOR_C_PARAMS(C) > arg_num_; + typedef typename aux::vector_c_impl_chooser< arg_num_::value > + ::template result_< T, AUX_VECTOR_C_PARAMS(C) >::type type; +}; + +} // namespace aux + +template< + typename T + , AUX_VECTOR_C_DEFAULT_PARAMS(long C, LONG_MAX) + > +struct vector_c + : aux::vector_c_impl< T,AUX_VECTOR_C_PARAMS(C) >::type +{ + typedef typename aux::vector_c_impl< + T,AUX_VECTOR_C_PARAMS(C) + >::type type; +}; + +#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +# undef AUX_VECTOR_C_N_PARTIAL_SPEC_PARAMS +# undef AUX_VECTOR_C_N_PARAMS +# undef AUX_VECTOR_C_DEFAULT_PARAMS +# undef AUX_VECTOR_C_PARAMS +# undef AUX_VECTOR_C + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS +#endif // BOOST_MPL_VECTOR_C_HPP_INCLUDED + +///// iteration + +#else +#define i BOOST_PP_FRAME_ITERATION(1) + +# if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) + +#if i == BOOST_MPL_LIMIT_VECTOR_SIZE + +//: primary template (not a specialization!) +template< + typename T + AUX_VECTOR_C_N_PARAMS(i, long C) + > +struct vector_c + : AUX_VECTOR_C(i)< T AUX_VECTOR_C_N_PARAMS(i, C) > +{ + typedef AUX_VECTOR_C(i)< T AUX_VECTOR_C_N_PARAMS(i, C) > type; +}; + +#else + +template< + typename T + AUX_VECTOR_C_N_PARAMS(i, long C) + > +struct vector_c< T,AUX_VECTOR_C_N_PARTIAL_SPEC_PARAMS(i, C, LONG_MAX) > + : AUX_VECTOR_C(i)< T AUX_VECTOR_C_N_PARAMS(i, C) > +{ + typedef AUX_VECTOR_C(i)< T AUX_VECTOR_C_N_PARAMS(i, C) > type; +}; + +#endif // i == BOOST_MPL_LIMIT_VECTOR_SIZE + +# else + +namespace aux { + +template<> +struct vector_c_impl_chooser +{ + template< + typename T + , AUX_VECTOR_C_PARAMS(long C) + > + struct result_ + { + typedef AUX_VECTOR_C(i)< + T AUX_VECTOR_C_N_PARAMS(i, C) + > type; + }; +}; + +} // namespace aux + +# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION + +#undef i +#endif // BOOST_PP_IS_ITERATING diff --git a/include/boost/mpl/void.hpp b/include/boost/mpl/void.hpp new file mode 100644 index 0000000..d3250e7 --- /dev/null +++ b/include/boost/mpl/void.hpp @@ -0,0 +1,36 @@ +//----------------------------------------------------------------------------- +// boost mpl/void.hpp header file +// See http://www.boost.org for updates, documentation, and revision history. +//----------------------------------------------------------------------------- +// +// Copyright (c) 2001-02 +// Peter Dimov, Aleksey Gurtovoy +// +// Permission to use, copy, modify, distribute and sell this software +// and its documentation for any purpose is hereby granted without fee, +// provided that the above copyright notice appears in all copies and +// that both the copyright notice and this permission notice appear in +// supporting documentation. No representations are made about the +// suitability of this software for any purpose. It is provided "as is" +// without express or implied warranty. + +#ifndef BOOST_MPL_VOID_HPP_INCLUDED +#define BOOST_MPL_VOID_HPP_INCLUDED + +namespace boost { +namespace mpl { + +struct void_; + +namespace aux { +template< typename > struct reject_if_void_ { enum { value = 1 }; }; +template<> struct reject_if_void_; // never defined + +template< typename > struct reject_if_not_void_; // never defined +template<> struct reject_if_not_void_ { enum { value = 1 }; }; +} + +} // namespace mpl +} // namespace boost + +#endif // BOOST_MPL_VOID_HPP_INCLUDED