summaryrefslogtreecommitdiff
path: root/boost/parameter/aux_/preprocessor
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:24:45 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2019-12-05 15:24:45 +0900
commit5ce1cfc2525b06c0a9e38531813781de0281c96d (patch)
tree19cc66c6cf6396db288813b2558cc350f1deede2 /boost/parameter/aux_/preprocessor
parent3c1df2168531ad5580076ae08d529054689aeedd (diff)
downloadboost-5ce1cfc2525b06c0a9e38531813781de0281c96d.tar.gz
boost-5ce1cfc2525b06c0a9e38531813781de0281c96d.tar.bz2
boost-5ce1cfc2525b06c0a9e38531813781de0281c96d.zip
Imported Upstream version 1.71.0upstream/1.71.0
Diffstat (limited to 'boost/parameter/aux_/preprocessor')
-rw-r--r--boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp1638
-rw-r--r--boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp1796
-rw-r--r--boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp65
-rw-r--r--boost/parameter/aux_/preprocessor/convert_binary_seq.hpp57
-rw-r--r--boost/parameter/aux_/preprocessor/flatten.hpp117
-rw-r--r--boost/parameter/aux_/preprocessor/for_each.hpp105
-rw-r--r--boost/parameter/aux_/preprocessor/for_each_pred.hpp1029
-rw-r--r--boost/parameter/aux_/preprocessor/impl/argument_specs.hpp24
-rw-r--r--boost/parameter/aux_/preprocessor/impl/arity_range.hpp42
-rw-r--r--boost/parameter/aux_/preprocessor/impl/flatten.hpp143
-rw-r--r--boost/parameter/aux_/preprocessor/impl/for_each.hpp152
-rw-r--r--boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp509
-rw-r--r--boost/parameter/aux_/preprocessor/impl/function_cast.hpp730
-rw-r--r--boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp474
-rw-r--r--boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp33
-rw-r--r--boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp43
-rw-r--r--boost/parameter/aux_/preprocessor/impl/function_name.hpp152
-rw-r--r--boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp331
-rw-r--r--boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp122
-rw-r--r--boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp34
-rw-r--r--boost/parameter/aux_/preprocessor/impl/specification.hpp109
-rw-r--r--boost/parameter/aux_/preprocessor/impl/split_args.hpp71
-rw-r--r--boost/parameter/aux_/preprocessor/inc_binary_seq.hpp78
-rw-r--r--boost/parameter/aux_/preprocessor/is_binary.hpp31
-rw-r--r--boost/parameter/aux_/preprocessor/is_nullary.hpp32
-rw-r--r--boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp165
-rw-r--r--boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp24
-rw-r--r--boost/parameter/aux_/preprocessor/nullptr.hpp18
-rw-r--r--boost/parameter/aux_/preprocessor/overloads.hpp92
-rw-r--r--boost/parameter/aux_/preprocessor/qualifier.hpp88
-rw-r--r--boost/parameter/aux_/preprocessor/seq_enum.hpp26
-rw-r--r--boost/parameter/aux_/preprocessor/seq_merge.hpp1807
32 files changed, 9929 insertions, 208 deletions
diff --git a/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp b/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp
new file mode 100644
index 0000000000..700d918a9d
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp
@@ -0,0 +1,1638 @@
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_FOR_EACH_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_FOR_EACH_HPP
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_0(macro, data)
+/**/
+
+#include <boost/parameter/aux_/preprocessor/for_each_pred.hpp>
+#include <boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp>
+#include <boost/preprocessor/repetition/for.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_1(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_2 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_2(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_3 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_3(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_4 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_4(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_5 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_5(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_6 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_6(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_7 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_7(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_8 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_8(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_9 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_2_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_9 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_2_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_9(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_10 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_3_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_10 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_3_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_10 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_3_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_10 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_3_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_10(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_11(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_12(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_13(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N \
+ , macro \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_14(macro, data) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(0)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(0)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(0)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(0)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(0)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(0)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(0)(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ ) \
+ BOOST_PP_FOR( \
+ (data)(1)(1)(1)(1)(1)(1)(1)(0)(0)(0)(0)(0)(0)(0) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15 \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N \
+ , macro \
+ )
+/**/
+
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH(n, seq) \
+ BOOST_PP_CAT(BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_, n)( \
+ BOOST_PP_SEQ_ELEM(0, seq), BOOST_PP_SEQ_ELEM(1, seq) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_Z(z, n, seq) \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH(n, seq)
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp b/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp
new file mode 100644
index 0000000000..7e97546739
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/binary_seq_for_each_inc.hpp
@@ -0,0 +1,1796 @@
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_FOR_EACH_INC_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_FOR_EACH_INC_HPP
+
+#include <boost/parameter/aux_/preprocessor/inc_binary_seq.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/push_front.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_1_N(r, seq) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_TAIL(seq)) \
+ , BOOST_PP_SEQ_HEAD(seq) \
+ )
+/**/
+
+#include <boost/parameter/aux_/preprocessor/seq_merge.hpp>
+#include <boost/preprocessor/seq/first_n.hpp>
+#include <boost/preprocessor/seq/rest_n.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_2_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(2, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(2, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_3_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(3, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(3, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_4_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(4, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(4, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_5_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(5, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(5, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_6_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(6, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(6, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_7_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(7, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(7, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_8_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(8, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(8, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_9_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(9, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(9, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_10_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(10, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(10, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_11_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(11, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(11, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_12_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(12, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(12, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_13_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(13, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(13, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_14_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(14, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(14, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_15_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(15, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(15, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_16_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(16, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(16, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_17_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(17, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(17, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_18_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(18, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(18, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_19_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(19, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(19, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_20_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(20, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(20, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_21_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(21, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(21, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_22_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(22, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(22, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_23_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(23, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(23, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_24_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(24, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(24, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_25_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(25, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(25, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_26_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(26, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(26, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_27_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(27, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(27, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_28_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(28, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(28, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_29_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(29, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(29, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_30_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(30, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(30, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_31_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(31, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(31, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_32_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(32, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(32, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_33_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(33, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(33, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_34_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(34, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(34, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_35_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(35, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(35, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_36_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(36, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(36, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_37_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(37, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(37, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_38_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(38, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(38, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_39_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(39, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(39, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_40_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(40, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(40, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_41_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(41, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(41, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_42_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(42, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(42, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_43_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(43, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(43, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_44_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(44, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(44, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_45_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(45, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(45, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_46_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(46, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(46, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_47_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(47, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(47, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_48_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(48, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(48, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_49_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(49, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(49, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_50_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(50, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(50, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_51_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(51, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(51, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_52_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(52, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(52, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_53_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(53, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(53, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_54_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(54, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(54, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_55_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(55, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(55, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_56_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(56, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(56, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_57_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(57, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(57, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_58_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(58, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(58, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_59_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(59, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(59, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_60_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(60, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(60, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_61_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(61, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(61, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_62_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(62, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(62, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_63_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(63, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(63, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_64_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(64, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(64, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_65_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(65, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(65, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_66_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(66, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(66, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_67_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(67, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(67, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_68_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(68, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(68, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_69_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(69, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(69, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_70_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(70, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(70, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_71_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(71, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(71, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_72_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(72, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(72, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_73_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(73, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(73, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_74_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(74, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(74, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_75_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(75, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(75, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_76_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(76, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(76, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_77_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(77, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(77, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_78_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(78, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(78, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_79_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(79, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(79, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_80_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(80, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(80, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_81_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(81, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(81, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_82_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(82, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(82, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_83_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(83, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(83, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_84_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(84, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(84, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_85_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(85, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(85, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_86_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(86, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(86, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_87_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(87, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(87, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_88_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(88, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(88, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_89_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(89, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(89, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_90_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(90, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(90, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_91_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(91, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(91, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_92_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(92, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(92, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_93_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(93, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(93, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_94_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(94, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(94, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_95_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(95, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(95, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_96_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(96, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(96, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_97_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(97, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(97, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_98_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(98, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(98, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_99_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(99, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(99, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_100_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(100, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(100, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_101_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(101, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(101, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_102_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(102, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(102, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_103_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(103, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(103, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_104_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(104, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(104, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_105_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(105, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(105, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_106_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(106, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(106, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_107_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(107, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(107, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_108_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(108, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(108, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_109_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(109, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(109, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_110_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(110, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(110, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_111_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(111, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(111, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_112_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(112, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(112, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_113_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(113, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(113, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_114_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(114, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(114, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_115_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(115, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(115, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_116_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(116, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(116, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_117_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(117, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(117, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_118_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(118, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(118, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_119_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(119, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(119, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_120_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(120, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(120, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_121_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(121, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(121, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_122_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(122, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(122, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_123_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(123, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(123, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_124_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(124, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(124, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_125_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(125, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(125, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_126_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(126, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(126, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_127_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(127, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(127, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_128_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(128, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(128, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_129_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(129, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(129, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_130_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(130, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(130, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_131_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(131, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(131, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_132_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(132, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(132, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_133_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(133, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(133, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_134_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(134, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(134, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_135_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(135, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(135, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_136_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(136, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(136, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_137_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(137, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(137, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_138_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(138, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(138, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_139_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(139, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(139, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_140_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(140, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(140, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_141_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(11, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(141, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_142_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(142, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(142, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_143_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(143, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(143, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_144_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(144, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(144, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_145_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(145, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(145, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_146_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(146, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(146, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_147_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(147, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(147, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_148_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(148, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(148, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_149_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(149, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(149, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_150_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(150, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(150, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_151_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(151, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(151, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_152_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(152, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(152, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_153_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(153, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(153, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_154_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(154, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(154, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_155_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(155, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(155, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_156_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(156, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(156, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_157_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(157, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(157, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_158_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(158, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(158, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_159_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(159, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(159, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_160_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(160, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(160, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_161_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(161, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(161, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_162_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(162, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(162, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_163_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(163, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(163, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_164_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(164, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(164, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_165_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(165, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(165, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_166_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(166, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(166, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_167_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(167, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(167, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_168_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(168, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(168, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_169_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(169, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(169, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_170_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(170, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(170, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_171_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(171, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(171, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_172_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(172, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(172, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_173_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(173, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(173, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_174_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(174, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(174, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_175_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(175, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(175, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_176_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(176, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(176, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_177_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(177, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(177, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_178_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(178, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(178, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_179_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(179, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(179, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_180_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(180, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(180, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_181_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(181, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(181, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_182_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(182, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(182, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_183_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(183, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(183, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_184_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(184, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(184, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_185_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(185, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(185, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_186_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(186, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(186, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_187_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(187, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(187, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_188_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(188, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(188, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_189_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(189, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(189, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_190_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(190, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(190, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_191_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(191, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(191, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_192_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(192, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(192, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_193_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(193, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(193, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_194_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(194, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(194, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_195_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(195, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(195, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_196_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(196, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(196, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_197_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(197, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(197, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_198_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(198, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(198, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_199_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(199, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(199, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_200_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(200, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(200, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_201_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(201, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(201, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_202_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(202, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(202, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_203_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(203, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(203, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_204_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(204, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(204, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_205_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(205, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(205, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_206_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(206, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(206, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_207_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(207, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(207, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_208_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(208, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(208, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_209_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(209, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(209, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_210_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(210, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(210, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_211_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(211, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(211, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_212_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(212, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(212, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_213_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(213, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(213, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_214_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(214, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(214, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_215_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(215, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(215, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_216_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(216, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(216, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_217_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(217, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(217, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_218_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(218, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(218, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_219_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(219, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(219, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_220_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(220, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(220, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_221_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(221, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(221, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_222_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(222, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(222, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_223_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(223, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(223, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_224_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(224, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(224, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_225_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(225, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(225, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_226_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(226, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(226, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_227_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(227, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(227, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_228_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(228, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(228, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_229_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(229, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(229, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_230_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(230, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(230, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_231_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(231, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(231, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_232_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(232, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(232, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_233_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(233, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(233, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_234_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(234, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(234, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_235_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(235, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(235, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_236_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(236, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(236, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_237_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(237, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(237, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_238_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(238, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(238, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_239_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(239, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(239, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_240_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(240, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(240, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_241_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(241, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(241, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_242_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(242, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(242, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_243_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(243, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(243, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_244_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(244, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(244, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_245_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(245, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(245, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_246_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(246, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(246, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_247_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(247, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(247, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_248_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(248, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(248, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_249_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(249, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(249, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_250_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(250, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(250, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_251_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(251, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(251, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_252_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(252, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(252, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_253_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(253, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(253, seq)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_INC_254_N(r, seq) \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE( \
+ BOOST_PP_SEQ_FIRST_N(254, seq) \
+ , BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(BOOST_PP_SEQ_REST_N(254, seq)) \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp b/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp
new file mode 100644
index 0000000000..4b4ca6290a
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp
@@ -0,0 +1,65 @@
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_TO_ARGS_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_BINARY_SEQ_TO_ARGS_HPP
+
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0_1(n, prefix_seq) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(0, prefix_seq), n) const&
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1_1(n, prefix_seq) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(0, prefix_seq), n)&
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0_2(n, prefix_seq) \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0_1(n, prefix_seq) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(1, prefix_seq), n)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1_2(n, prefix_seq) \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1_1(n, prefix_seq) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(1, prefix_seq), n)
+/**/
+
+#include <boost/preprocessor/seq/size.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0(prefix_seq) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0_ \
+ , BOOST_PP_SEQ_SIZE(prefix_seq) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1(prefix_seq) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1_ \
+ , BOOST_PP_SEQ_SIZE(prefix_seq) \
+ )
+/**/
+
+#include <boost/parameter/aux_/preprocessor/convert_binary_seq.hpp>
+
+// This macro converts the specified Boost.Preprocessor sequence of 1s and 0s
+// into a formal function parameter list.
+//
+// Example:
+// BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS((1)(0)(1)(0), (P)(p))
+// expands to
+// P0 & p0, P1 const& p1, P2 & p2, P3 const& p3
+#define BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS(binary_seq, prefix_seq) \
+ BOOST_PARAMETER_AUX_PP_CONVERT_BINARY_SEQ( \
+ binary_seq \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_0(prefix_seq) \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARG_1(prefix_seq) \
+ , prefix_seq \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp b/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp
new file mode 100644
index 0000000000..64832b3d4b
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/convert_binary_seq.hpp
@@ -0,0 +1,57 @@
+// Copyright Cromwell D. Enage 2013.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_CONVERT_BINARY_SEQ_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_CONVERT_BINARY_SEQ_HPP
+
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/push_back.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_AUGMENT_BINARY_SEQ_INDEX_FOLD_OP(s, seq, idx) \
+ BOOST_PP_SEQ_PUSH_BACK(seq, (idx, BOOST_PP_SEQ_SIZE(seq)))
+/**/
+
+#include <boost/preprocessor/control/iif.hpp>
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_CONVERT_BINARY_SEQ_FOLD_OP(s, seq, elem) \
+ ( \
+ BOOST_PP_SEQ_PUSH_BACK( \
+ BOOST_PP_SEQ_ELEM(0, seq) \
+ , BOOST_PP_IIF( \
+ BOOST_PP_TUPLE_ELEM(2, 0, elem) \
+ , BOOST_PP_SEQ_ELEM(2, seq) \
+ , BOOST_PP_SEQ_ELEM(1, seq) \
+ )(BOOST_PP_TUPLE_ELEM(2, 1, elem), BOOST_PP_SEQ_ELEM(3, seq)) \
+ ) \
+ )(BOOST_PP_SEQ_ELEM(1, seq))(BOOST_PP_SEQ_ELEM(2, seq)) \
+ (BOOST_PP_SEQ_ELEM(3, seq))
+/**/
+
+#include <boost/parameter/aux_/preprocessor/seq_enum.hpp>
+#include <boost/preprocessor/facilities/empty.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/fold_left.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_CONVERT_BINARY_SEQ(seq, macro0, macro1, data) \
+ BOOST_PARAMETER_SEQ_ENUM( \
+ BOOST_PP_SEQ_ELEM( \
+ 0 \
+ , BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_PARAMETER_AUX_PP_CONVERT_BINARY_SEQ_FOLD_OP \
+ , (BOOST_PP_SEQ_NIL)(macro0)(macro1)(data) \
+ , BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_PARAMETER_AUX_PP_AUGMENT_BINARY_SEQ_INDEX_FOLD_OP \
+ , BOOST_PP_EMPTY() \
+ , seq \
+ ) \
+ ) \
+ ) \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/flatten.hpp b/boost/parameter/aux_/preprocessor/flatten.hpp
index 5d7615e3f3..876a928bfd 100644
--- a/boost/parameter/aux_/preprocessor/flatten.hpp
+++ b/boost/parameter/aux_/preprocessor/flatten.hpp
@@ -1,115 +1,12 @@
-// Copyright Daniel Wallin 2005. Use, modification and distribution is
-// subject to the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+// Copyright Daniel Wallin 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PARAMETER_FLATTEN_051217_HPP
-# define BOOST_PARAMETER_FLATTEN_051217_HPP
+#define BOOST_PARAMETER_FLATTEN_051217_HPP
-# include <boost/preprocessor/tuple/elem.hpp>
-# include <boost/preprocessor/tuple/rem.hpp>
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/seq/for_each.hpp>
-# include <boost/preprocessor/seq/for_each_i.hpp>
-# include <boost/preprocessor/identity.hpp>
-# include <boost/preprocessor/selection/max.hpp>
-# include <boost/preprocessor/arithmetic/sub.hpp>
-# include <boost/preprocessor/repetition/enum_trailing.hpp>
-# include <boost/parameter/aux_/preprocessor/for_each.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/flatten.hpp>
-# define BOOST_PARAMETER_FLATTEN_SPLIT_required required,
-# define BOOST_PARAMETER_FLATTEN_SPLIT_optional optional,
-# define BOOST_PARAMETER_FLATTEN_SPLIT_deduced deduced,
-
-# define BOOST_PARAMETER_FLATTEN_SPLIT(sub) \
- BOOST_PP_CAT(BOOST_PARAMETER_FLATTEN_SPLIT_, sub)
-
-# define BOOST_PARAMETER_FLATTEN_QUALIFIER(sub) \
- BOOST_PP_SPLIT(0, BOOST_PARAMETER_FLATTEN_SPLIT(sub))
-
-# define BOOST_PARAMETER_FLATTEN_ARGS(sub) \
- BOOST_PP_SPLIT(1, BOOST_PARAMETER_FLATTEN_SPLIT(sub))
-
-# define BOOST_PARAMETER_FLATTEN_ARITY_optional(arities) \
- BOOST_PP_TUPLE_ELEM(3,0,arities)
-
-# define BOOST_PARAMETER_FLATTEN_ARITY_required(arities) \
- BOOST_PP_TUPLE_ELEM(3,1,arities)
-
-# define BOOST_PARAMETER_FLATTEN_SPEC0_DUMMY_ELEM(z, n, data) ~
-# define BOOST_PARAMETER_FLATTEN_SPEC0(r, n, elem, data) \
- (( \
- BOOST_PP_TUPLE_ELEM(3,2,data) \
- , BOOST_PP_TUPLE_REM(BOOST_PP_TUPLE_ELEM(3,0,data)) elem \
- BOOST_PP_ENUM_TRAILING( \
- BOOST_PP_SUB( \
- BOOST_PP_TUPLE_ELEM(3,1,data) \
- , BOOST_PP_TUPLE_ELEM(3,0,data) \
- ) \
- , BOOST_PARAMETER_FLATTEN_SPEC0_DUMMY_ELEM \
- , ~ \
- ) \
- ))
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_AUX(r, arity, max_arity, spec, transform) \
- BOOST_PARAMETER_FOR_EACH_R( \
- r \
- , arity \
- , BOOST_PARAMETER_FLATTEN_ARGS(spec) \
- , (arity, max_arity, transform(BOOST_PARAMETER_FLATTEN_QUALIFIER(spec))) \
- , BOOST_PARAMETER_FLATTEN_SPEC0 \
- )
-
-# define BOOST_PARAMETER_FLATTEN_IDENTITY(x) x
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_optional(r, arities, spec) \
- BOOST_PARAMETER_FLATTEN_SPEC_AUX( \
- r \
- , BOOST_PP_CAT( \
- BOOST_PARAMETER_FLATTEN_ARITY_, BOOST_PARAMETER_FLATTEN_QUALIFIER(spec) \
- )(arities) \
- , BOOST_PP_TUPLE_ELEM(3,2,arities) \
- , spec \
- , BOOST_PARAMETER_FLATTEN_IDENTITY \
- )
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_required(r, arities, spec) \
- BOOST_PARAMETER_FLATTEN_SPEC_optional(r, arities, spec)
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_AS_DEDUCED(x) BOOST_PP_CAT(deduced_,x)
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_deduced_M(r, arities, n, spec) \
- BOOST_PARAMETER_FLATTEN_SPEC_AUX( \
- r \
- , BOOST_PP_CAT( \
- BOOST_PARAMETER_FLATTEN_ARITY_, BOOST_PARAMETER_FLATTEN_QUALIFIER(spec) \
- )(arities) \
- , BOOST_PP_TUPLE_ELEM(3,2,arities) \
- , spec \
- , BOOST_PARAMETER_FLATTEN_SPEC_AS_DEDUCED \
- )
-
-# define BOOST_PARAMETER_FLATTEN_SPEC_deduced(r, arities, spec) \
- BOOST_PP_SEQ_FOR_EACH_I_R( \
- r \
- , BOOST_PARAMETER_FLATTEN_SPEC_deduced_M \
- , arities \
- , BOOST_PARAMETER_FLATTEN_ARGS(spec) \
- )
-
-# define BOOST_PARAMETER_FLATTEN_SPEC(r, arities, spec) \
- BOOST_PP_CAT( \
- BOOST_PARAMETER_FLATTEN_SPEC_, BOOST_PARAMETER_FLATTEN_QUALIFIER(spec) \
- )(r, arities, spec)
-
-# define BOOST_PARAMETER_FLATTEN(optional_arity, required_arity, wanted_arity, specs) \
- BOOST_PP_SEQ_FOR_EACH( \
- BOOST_PARAMETER_FLATTEN_SPEC \
- , ( \
- optional_arity, required_arity \
- , wanted_arity \
- ) \
- , specs \
- )
-
-#endif // BOOST_PARAMETER_FLATTEN_051217_HPP
+#endif // include guard
diff --git a/boost/parameter/aux_/preprocessor/for_each.hpp b/boost/parameter/aux_/preprocessor/for_each.hpp
index 0eb1f702db..221f45a785 100644
--- a/boost/parameter/aux_/preprocessor/for_each.hpp
+++ b/boost/parameter/aux_/preprocessor/for_each.hpp
@@ -1,103 +1,12 @@
-// Copyright Daniel Wallin 2005. Use, modification and distribution is
-// subject to the Boost Software License, Version 1.0. (See accompanying
-// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+// Copyright Daniel Wallin 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PARAMETER_FOR_EACH_051217_HPP
-# define BOOST_PARAMETER_FOR_EACH_051217_HPP
+#define BOOST_PARAMETER_FOR_EACH_051217_HPP
-# include <boost/preprocessor/cat.hpp>
-# include <boost/preprocessor/detail/split.hpp>
-# include <boost/preprocessor/logical/not.hpp>
-# include <boost/preprocessor/facilities/is_empty.hpp>
-# include <boost/preprocessor/tuple/eat.hpp>
-# include <boost/preprocessor/arithmetic/inc.hpp>
-# include <boost/preprocessor/repeat.hpp>
-# include <boost/preprocessor/punctuation/comma_if.hpp>
-# include <boost/preprocessor/for.hpp>
-# include <boost/preprocessor/repetition/deduce_r.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/for_each.hpp>
-# define BOOST_PARAMETER_FOR_EACH_head_aux2(x,y) (x,y), ~
-# define BOOST_PARAMETER_FOR_EACH_head_aux3(x,y,z) (x,y,z), ~
-# define BOOST_PARAMETER_FOR_EACH_head_aux4(x,y,z,u) (x,y,z,u), ~
-# define BOOST_PARAMETER_FOR_EACH_head(n,x) \
- BOOST_PP_SPLIT(0, BOOST_PP_CAT(BOOST_PARAMETER_FOR_EACH_head_aux,n) x)
-
-# define BOOST_PARAMETER_FOR_EACH_pred_aux_BOOST_PARAMETER_FOR_EACH_END_SENTINEL
-# define BOOST_PARAMETER_FOR_EACH_pred_aux_check(x) \
- BOOST_PP_NOT(BOOST_PP_IS_EMPTY( \
- BOOST_PP_CAT(BOOST_PARAMETER_FOR_EACH_pred_aux_, x) \
- )), ~
-
-# define BOOST_PARAMETER_FOR_EACH_pred_aux2(x,y) \
- BOOST_PARAMETER_FOR_EACH_pred_aux_check(x)
-# define BOOST_PARAMETER_FOR_EACH_pred_aux3(x,y,z) \
- BOOST_PARAMETER_FOR_EACH_pred_aux_check(x)
-# define BOOST_PARAMETER_FOR_EACH_pred_aux4(x,y,z,u) \
- BOOST_PARAMETER_FOR_EACH_pred_aux_check(x)
-
-# define BOOST_PARAMETER_FOR_EACH_pred_aux0(n,x) \
- BOOST_PP_CAT(BOOST_PARAMETER_FOR_EACH_pred_aux,n) x
-
-# if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
-# define BOOST_PARAMETER_FOR_EACH_pred_SPLIT_FIRST(x) \
- BOOST_PP_SPLIT(0, x)
-
-# define BOOST_PARAMETER_FOR_EACH_pred(r, state) \
- BOOST_PARAMETER_FOR_EACH_pred_SPLIT_FIRST( \
- BOOST_PARAMETER_FOR_EACH_pred_aux0( \
- BOOST_PP_TUPLE_ELEM(5,3,state) \
- , BOOST_PP_TUPLE_ELEM(5,0,state) \
- ) \
- )
-# else
-# define BOOST_PARAMETER_FOR_EACH_pred(r, state) \
- BOOST_PP_SPLIT( \
- 0 \
- , BOOST_PARAMETER_FOR_EACH_pred_aux0( \
- BOOST_PP_TUPLE_ELEM(5,3,state) \
- , BOOST_PP_TUPLE_ELEM(5,0,state) \
- ) \
- )
-# endif
-
-# define BOOST_PARAMETER_FOR_EACH_op(r, state) \
- ( \
- BOOST_PP_TUPLE_EAT(BOOST_PP_TUPLE_ELEM(5,3,state)) \
- BOOST_PP_TUPLE_ELEM(5,0,state) \
- , BOOST_PP_TUPLE_ELEM(5,1,state) \
- , BOOST_PP_TUPLE_ELEM(5,2,state) \
- , BOOST_PP_TUPLE_ELEM(5,3,state) \
- , BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(5,4,state)) \
- )
-
-# define BOOST_PARAMETER_FOR_EACH_macro(r, state) \
- BOOST_PP_TUPLE_ELEM(5,2,state)( \
- r \
- , BOOST_PP_TUPLE_ELEM(5,4,state) \
- , BOOST_PARAMETER_FOR_EACH_head( \
- BOOST_PP_TUPLE_ELEM(5,3,state) \
- , BOOST_PP_TUPLE_ELEM(5,0,state) \
- ) \
- , BOOST_PP_TUPLE_ELEM(5,1,state) \
- )
-
-# define BOOST_PARAMETER_FOR_EACH_build_end_sentinel(z,n,text) \
- BOOST_PP_COMMA_IF(n) BOOST_PARAMETER_FOR_EACH_END_SENTINEL
-# define BOOST_PARAMETER_FOR_EACH_build_end_sentinel_tuple(arity) \
- ( \
- BOOST_PP_REPEAT(arity, BOOST_PARAMETER_FOR_EACH_build_end_sentinel, _) \
- )
-
-# define BOOST_PARAMETER_FOR_EACH_R(r, arity, list, data, macro) \
- BOOST_PP_CAT(BOOST_PP_FOR_, r)( \
- (list BOOST_PARAMETER_FOR_EACH_build_end_sentinel_tuple(arity), data, macro, arity, 0) \
- , BOOST_PARAMETER_FOR_EACH_pred \
- , BOOST_PARAMETER_FOR_EACH_op \
- , BOOST_PARAMETER_FOR_EACH_macro \
- )
-
-# define BOOST_PARAMETER_FOR_EACH(arity, list, data, macro) \
- BOOST_PARAMETER_FOR_EACH_R(BOOST_PP_DEDUCE_R(), arity, list, data, macro)
-
-#endif // BOOST_PARAMETER_FOR_EACH_051217_HPP
+#endif // include guard
diff --git a/boost/parameter/aux_/preprocessor/for_each_pred.hpp b/boost/parameter/aux_/preprocessor/for_each_pred.hpp
new file mode 100644
index 0000000000..7d4c6368e6
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/for_each_pred.hpp
@@ -0,0 +1,1029 @@
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_FOR_EACH_PRED_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_FOR_EACH_PRED_HPP
+
+#include <boost/preprocessor/comparison/not_equal.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_1(r, seq) \
+ BOOST_PP_NOT_EQUAL(2, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_2(r, seq) \
+ BOOST_PP_NOT_EQUAL(3, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_3(r, seq) \
+ BOOST_PP_NOT_EQUAL(4, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_4(r, seq) \
+ BOOST_PP_NOT_EQUAL(5, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_5(r, seq) \
+ BOOST_PP_NOT_EQUAL(6, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_6(r, seq) \
+ BOOST_PP_NOT_EQUAL(7, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_7(r, seq) \
+ BOOST_PP_NOT_EQUAL(8, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_8(r, seq) \
+ BOOST_PP_NOT_EQUAL(9, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_9(r, seq) \
+ BOOST_PP_NOT_EQUAL(10, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_10(r, seq) \
+ BOOST_PP_NOT_EQUAL(11, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_11(r, seq) \
+ BOOST_PP_NOT_EQUAL(12, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_12(r, seq) \
+ BOOST_PP_NOT_EQUAL(13, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_13(r, seq) \
+ BOOST_PP_NOT_EQUAL(14, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_14(r, seq) \
+ BOOST_PP_NOT_EQUAL(15, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_15(r, seq) \
+ BOOST_PP_NOT_EQUAL(16, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_16(r, seq) \
+ BOOST_PP_NOT_EQUAL(17, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_17(r, seq) \
+ BOOST_PP_NOT_EQUAL(18, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_18(r, seq) \
+ BOOST_PP_NOT_EQUAL(19, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_19(r, seq) \
+ BOOST_PP_NOT_EQUAL(20, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_20(r, seq) \
+ BOOST_PP_NOT_EQUAL(21, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_21(r, seq) \
+ BOOST_PP_NOT_EQUAL(22, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_22(r, seq) \
+ BOOST_PP_NOT_EQUAL(23, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_23(r, seq) \
+ BOOST_PP_NOT_EQUAL(24, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_24(r, seq) \
+ BOOST_PP_NOT_EQUAL(25, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_25(r, seq) \
+ BOOST_PP_NOT_EQUAL(26, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_26(r, seq) \
+ BOOST_PP_NOT_EQUAL(27, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_27(r, seq) \
+ BOOST_PP_NOT_EQUAL(28, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_28(r, seq) \
+ BOOST_PP_NOT_EQUAL(29, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_29(r, seq) \
+ BOOST_PP_NOT_EQUAL(30, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_30(r, seq) \
+ BOOST_PP_NOT_EQUAL(31, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_31(r, seq) \
+ BOOST_PP_NOT_EQUAL(32, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_32(r, seq) \
+ BOOST_PP_NOT_EQUAL(33, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_33(r, seq) \
+ BOOST_PP_NOT_EQUAL(34, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_34(r, seq) \
+ BOOST_PP_NOT_EQUAL(35, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_35(r, seq) \
+ BOOST_PP_NOT_EQUAL(36, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_36(r, seq) \
+ BOOST_PP_NOT_EQUAL(37, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_37(r, seq) \
+ BOOST_PP_NOT_EQUAL(38, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_38(r, seq) \
+ BOOST_PP_NOT_EQUAL(39, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_39(r, seq) \
+ BOOST_PP_NOT_EQUAL(40, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_40(r, seq) \
+ BOOST_PP_NOT_EQUAL(41, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_41(r, seq) \
+ BOOST_PP_NOT_EQUAL(42, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_42(r, seq) \
+ BOOST_PP_NOT_EQUAL(43, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_43(r, seq) \
+ BOOST_PP_NOT_EQUAL(44, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_44(r, seq) \
+ BOOST_PP_NOT_EQUAL(45, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_45(r, seq) \
+ BOOST_PP_NOT_EQUAL(46, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_46(r, seq) \
+ BOOST_PP_NOT_EQUAL(47, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_47(r, seq) \
+ BOOST_PP_NOT_EQUAL(48, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_48(r, seq) \
+ BOOST_PP_NOT_EQUAL(49, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_49(r, seq) \
+ BOOST_PP_NOT_EQUAL(50, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_50(r, seq) \
+ BOOST_PP_NOT_EQUAL(51, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_51(r, seq) \
+ BOOST_PP_NOT_EQUAL(52, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_52(r, seq) \
+ BOOST_PP_NOT_EQUAL(53, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_53(r, seq) \
+ BOOST_PP_NOT_EQUAL(54, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_54(r, seq) \
+ BOOST_PP_NOT_EQUAL(55, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_55(r, seq) \
+ BOOST_PP_NOT_EQUAL(56, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_56(r, seq) \
+ BOOST_PP_NOT_EQUAL(57, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_57(r, seq) \
+ BOOST_PP_NOT_EQUAL(58, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_58(r, seq) \
+ BOOST_PP_NOT_EQUAL(59, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_59(r, seq) \
+ BOOST_PP_NOT_EQUAL(60, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_60(r, seq) \
+ BOOST_PP_NOT_EQUAL(61, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_61(r, seq) \
+ BOOST_PP_NOT_EQUAL(62, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_62(r, seq) \
+ BOOST_PP_NOT_EQUAL(63, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_63(r, seq) \
+ BOOST_PP_NOT_EQUAL(64, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_64(r, seq) \
+ BOOST_PP_NOT_EQUAL(65, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_65(r, seq) \
+ BOOST_PP_NOT_EQUAL(66, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_66(r, seq) \
+ BOOST_PP_NOT_EQUAL(67, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_67(r, seq) \
+ BOOST_PP_NOT_EQUAL(68, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_68(r, seq) \
+ BOOST_PP_NOT_EQUAL(69, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_69(r, seq) \
+ BOOST_PP_NOT_EQUAL(70, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_70(r, seq) \
+ BOOST_PP_NOT_EQUAL(71, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_71(r, seq) \
+ BOOST_PP_NOT_EQUAL(72, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_72(r, seq) \
+ BOOST_PP_NOT_EQUAL(73, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_73(r, seq) \
+ BOOST_PP_NOT_EQUAL(74, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_74(r, seq) \
+ BOOST_PP_NOT_EQUAL(75, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_75(r, seq) \
+ BOOST_PP_NOT_EQUAL(76, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_76(r, seq) \
+ BOOST_PP_NOT_EQUAL(77, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_77(r, seq) \
+ BOOST_PP_NOT_EQUAL(78, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_78(r, seq) \
+ BOOST_PP_NOT_EQUAL(79, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_79(r, seq) \
+ BOOST_PP_NOT_EQUAL(80, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_80(r, seq) \
+ BOOST_PP_NOT_EQUAL(81, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_81(r, seq) \
+ BOOST_PP_NOT_EQUAL(82, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_82(r, seq) \
+ BOOST_PP_NOT_EQUAL(83, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_83(r, seq) \
+ BOOST_PP_NOT_EQUAL(84, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_84(r, seq) \
+ BOOST_PP_NOT_EQUAL(85, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_85(r, seq) \
+ BOOST_PP_NOT_EQUAL(86, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_86(r, seq) \
+ BOOST_PP_NOT_EQUAL(87, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_87(r, seq) \
+ BOOST_PP_NOT_EQUAL(88, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_88(r, seq) \
+ BOOST_PP_NOT_EQUAL(89, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_89(r, seq) \
+ BOOST_PP_NOT_EQUAL(90, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_90(r, seq) \
+ BOOST_PP_NOT_EQUAL(91, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_91(r, seq) \
+ BOOST_PP_NOT_EQUAL(92, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_92(r, seq) \
+ BOOST_PP_NOT_EQUAL(93, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_93(r, seq) \
+ BOOST_PP_NOT_EQUAL(94, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_94(r, seq) \
+ BOOST_PP_NOT_EQUAL(95, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_95(r, seq) \
+ BOOST_PP_NOT_EQUAL(96, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_96(r, seq) \
+ BOOST_PP_NOT_EQUAL(97, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_97(r, seq) \
+ BOOST_PP_NOT_EQUAL(98, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_98(r, seq) \
+ BOOST_PP_NOT_EQUAL(99, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_99(r, seq) \
+ BOOST_PP_NOT_EQUAL(100, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_100(r, seq) \
+ BOOST_PP_NOT_EQUAL(101, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_101(r, seq) \
+ BOOST_PP_NOT_EQUAL(102, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_102(r, seq) \
+ BOOST_PP_NOT_EQUAL(103, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_103(r, seq) \
+ BOOST_PP_NOT_EQUAL(104, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_104(r, seq) \
+ BOOST_PP_NOT_EQUAL(105, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_105(r, seq) \
+ BOOST_PP_NOT_EQUAL(106, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_106(r, seq) \
+ BOOST_PP_NOT_EQUAL(107, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_107(r, seq) \
+ BOOST_PP_NOT_EQUAL(108, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_108(r, seq) \
+ BOOST_PP_NOT_EQUAL(109, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_109(r, seq) \
+ BOOST_PP_NOT_EQUAL(110, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_110(r, seq) \
+ BOOST_PP_NOT_EQUAL(111, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_111(r, seq) \
+ BOOST_PP_NOT_EQUAL(112, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_112(r, seq) \
+ BOOST_PP_NOT_EQUAL(113, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_113(r, seq) \
+ BOOST_PP_NOT_EQUAL(114, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_114(r, seq) \
+ BOOST_PP_NOT_EQUAL(115, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_115(r, seq) \
+ BOOST_PP_NOT_EQUAL(116, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_116(r, seq) \
+ BOOST_PP_NOT_EQUAL(117, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_117(r, seq) \
+ BOOST_PP_NOT_EQUAL(118, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_118(r, seq) \
+ BOOST_PP_NOT_EQUAL(119, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_119(r, seq) \
+ BOOST_PP_NOT_EQUAL(120, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_120(r, seq) \
+ BOOST_PP_NOT_EQUAL(121, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_121(r, seq) \
+ BOOST_PP_NOT_EQUAL(122, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_122(r, seq) \
+ BOOST_PP_NOT_EQUAL(123, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_123(r, seq) \
+ BOOST_PP_NOT_EQUAL(124, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_124(r, seq) \
+ BOOST_PP_NOT_EQUAL(125, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_125(r, seq) \
+ BOOST_PP_NOT_EQUAL(126, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_126(r, seq) \
+ BOOST_PP_NOT_EQUAL(127, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_127(r, seq) \
+ BOOST_PP_NOT_EQUAL(128, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_128(r, seq) \
+ BOOST_PP_NOT_EQUAL(129, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_129(r, seq) \
+ BOOST_PP_NOT_EQUAL(130, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_130(r, seq) \
+ BOOST_PP_NOT_EQUAL(131, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_131(r, seq) \
+ BOOST_PP_NOT_EQUAL(132, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_132(r, seq) \
+ BOOST_PP_NOT_EQUAL(133, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_133(r, seq) \
+ BOOST_PP_NOT_EQUAL(134, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_134(r, seq) \
+ BOOST_PP_NOT_EQUAL(135, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_135(r, seq) \
+ BOOST_PP_NOT_EQUAL(136, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_136(r, seq) \
+ BOOST_PP_NOT_EQUAL(137, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_137(r, seq) \
+ BOOST_PP_NOT_EQUAL(138, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_138(r, seq) \
+ BOOST_PP_NOT_EQUAL(139, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_139(r, seq) \
+ BOOST_PP_NOT_EQUAL(140, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_140(r, seq) \
+ BOOST_PP_NOT_EQUAL(141, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_141(r, seq) \
+ BOOST_PP_NOT_EQUAL(142, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_142(r, seq) \
+ BOOST_PP_NOT_EQUAL(143, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_143(r, seq) \
+ BOOST_PP_NOT_EQUAL(144, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_144(r, seq) \
+ BOOST_PP_NOT_EQUAL(145, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_145(r, seq) \
+ BOOST_PP_NOT_EQUAL(146, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_146(r, seq) \
+ BOOST_PP_NOT_EQUAL(147, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_147(r, seq) \
+ BOOST_PP_NOT_EQUAL(148, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_148(r, seq) \
+ BOOST_PP_NOT_EQUAL(149, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_149(r, seq) \
+ BOOST_PP_NOT_EQUAL(150, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_150(r, seq) \
+ BOOST_PP_NOT_EQUAL(151, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_151(r, seq) \
+ BOOST_PP_NOT_EQUAL(152, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_152(r, seq) \
+ BOOST_PP_NOT_EQUAL(153, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_153(r, seq) \
+ BOOST_PP_NOT_EQUAL(154, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_154(r, seq) \
+ BOOST_PP_NOT_EQUAL(155, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_155(r, seq) \
+ BOOST_PP_NOT_EQUAL(156, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_156(r, seq) \
+ BOOST_PP_NOT_EQUAL(157, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_157(r, seq) \
+ BOOST_PP_NOT_EQUAL(158, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_158(r, seq) \
+ BOOST_PP_NOT_EQUAL(159, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_159(r, seq) \
+ BOOST_PP_NOT_EQUAL(160, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_160(r, seq) \
+ BOOST_PP_NOT_EQUAL(161, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_161(r, seq) \
+ BOOST_PP_NOT_EQUAL(162, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_162(r, seq) \
+ BOOST_PP_NOT_EQUAL(163, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_163(r, seq) \
+ BOOST_PP_NOT_EQUAL(164, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_164(r, seq) \
+ BOOST_PP_NOT_EQUAL(165, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_165(r, seq) \
+ BOOST_PP_NOT_EQUAL(166, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_166(r, seq) \
+ BOOST_PP_NOT_EQUAL(167, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_167(r, seq) \
+ BOOST_PP_NOT_EQUAL(168, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_168(r, seq) \
+ BOOST_PP_NOT_EQUAL(169, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_169(r, seq) \
+ BOOST_PP_NOT_EQUAL(170, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_170(r, seq) \
+ BOOST_PP_NOT_EQUAL(171, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_171(r, seq) \
+ BOOST_PP_NOT_EQUAL(172, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_172(r, seq) \
+ BOOST_PP_NOT_EQUAL(173, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_173(r, seq) \
+ BOOST_PP_NOT_EQUAL(174, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_174(r, seq) \
+ BOOST_PP_NOT_EQUAL(175, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_175(r, seq) \
+ BOOST_PP_NOT_EQUAL(176, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_176(r, seq) \
+ BOOST_PP_NOT_EQUAL(177, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_177(r, seq) \
+ BOOST_PP_NOT_EQUAL(178, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_178(r, seq) \
+ BOOST_PP_NOT_EQUAL(179, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_179(r, seq) \
+ BOOST_PP_NOT_EQUAL(180, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_180(r, seq) \
+ BOOST_PP_NOT_EQUAL(181, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_181(r, seq) \
+ BOOST_PP_NOT_EQUAL(182, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_182(r, seq) \
+ BOOST_PP_NOT_EQUAL(183, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_183(r, seq) \
+ BOOST_PP_NOT_EQUAL(184, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_184(r, seq) \
+ BOOST_PP_NOT_EQUAL(185, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_185(r, seq) \
+ BOOST_PP_NOT_EQUAL(186, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_186(r, seq) \
+ BOOST_PP_NOT_EQUAL(187, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_187(r, seq) \
+ BOOST_PP_NOT_EQUAL(188, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_188(r, seq) \
+ BOOST_PP_NOT_EQUAL(189, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_189(r, seq) \
+ BOOST_PP_NOT_EQUAL(190, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_190(r, seq) \
+ BOOST_PP_NOT_EQUAL(191, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_191(r, seq) \
+ BOOST_PP_NOT_EQUAL(192, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_192(r, seq) \
+ BOOST_PP_NOT_EQUAL(193, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_193(r, seq) \
+ BOOST_PP_NOT_EQUAL(194, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_194(r, seq) \
+ BOOST_PP_NOT_EQUAL(195, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_195(r, seq) \
+ BOOST_PP_NOT_EQUAL(196, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_196(r, seq) \
+ BOOST_PP_NOT_EQUAL(197, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_197(r, seq) \
+ BOOST_PP_NOT_EQUAL(198, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_198(r, seq) \
+ BOOST_PP_NOT_EQUAL(199, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_199(r, seq) \
+ BOOST_PP_NOT_EQUAL(200, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_200(r, seq) \
+ BOOST_PP_NOT_EQUAL(201, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_201(r, seq) \
+ BOOST_PP_NOT_EQUAL(202, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_202(r, seq) \
+ BOOST_PP_NOT_EQUAL(203, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_203(r, seq) \
+ BOOST_PP_NOT_EQUAL(204, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_204(r, seq) \
+ BOOST_PP_NOT_EQUAL(205, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_205(r, seq) \
+ BOOST_PP_NOT_EQUAL(206, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_206(r, seq) \
+ BOOST_PP_NOT_EQUAL(207, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_207(r, seq) \
+ BOOST_PP_NOT_EQUAL(208, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_208(r, seq) \
+ BOOST_PP_NOT_EQUAL(209, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_209(r, seq) \
+ BOOST_PP_NOT_EQUAL(210, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_210(r, seq) \
+ BOOST_PP_NOT_EQUAL(211, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_211(r, seq) \
+ BOOST_PP_NOT_EQUAL(212, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_212(r, seq) \
+ BOOST_PP_NOT_EQUAL(213, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_213(r, seq) \
+ BOOST_PP_NOT_EQUAL(214, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_214(r, seq) \
+ BOOST_PP_NOT_EQUAL(215, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_215(r, seq) \
+ BOOST_PP_NOT_EQUAL(216, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_216(r, seq) \
+ BOOST_PP_NOT_EQUAL(217, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_217(r, seq) \
+ BOOST_PP_NOT_EQUAL(218, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_218(r, seq) \
+ BOOST_PP_NOT_EQUAL(219, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_219(r, seq) \
+ BOOST_PP_NOT_EQUAL(220, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_220(r, seq) \
+ BOOST_PP_NOT_EQUAL(221, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_221(r, seq) \
+ BOOST_PP_NOT_EQUAL(222, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_222(r, seq) \
+ BOOST_PP_NOT_EQUAL(223, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_223(r, seq) \
+ BOOST_PP_NOT_EQUAL(224, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_224(r, seq) \
+ BOOST_PP_NOT_EQUAL(225, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_225(r, seq) \
+ BOOST_PP_NOT_EQUAL(226, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_226(r, seq) \
+ BOOST_PP_NOT_EQUAL(227, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_227(r, seq) \
+ BOOST_PP_NOT_EQUAL(228, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_228(r, seq) \
+ BOOST_PP_NOT_EQUAL(229, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_229(r, seq) \
+ BOOST_PP_NOT_EQUAL(230, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_230(r, seq) \
+ BOOST_PP_NOT_EQUAL(231, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_231(r, seq) \
+ BOOST_PP_NOT_EQUAL(232, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_232(r, seq) \
+ BOOST_PP_NOT_EQUAL(233, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_233(r, seq) \
+ BOOST_PP_NOT_EQUAL(234, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_234(r, seq) \
+ BOOST_PP_NOT_EQUAL(235, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_235(r, seq) \
+ BOOST_PP_NOT_EQUAL(236, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_236(r, seq) \
+ BOOST_PP_NOT_EQUAL(237, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_237(r, seq) \
+ BOOST_PP_NOT_EQUAL(238, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_238(r, seq) \
+ BOOST_PP_NOT_EQUAL(239, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_239(r, seq) \
+ BOOST_PP_NOT_EQUAL(240, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_240(r, seq) \
+ BOOST_PP_NOT_EQUAL(241, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_241(r, seq) \
+ BOOST_PP_NOT_EQUAL(242, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_242(r, seq) \
+ BOOST_PP_NOT_EQUAL(243, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_243(r, seq) \
+ BOOST_PP_NOT_EQUAL(244, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_244(r, seq) \
+ BOOST_PP_NOT_EQUAL(245, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_245(r, seq) \
+ BOOST_PP_NOT_EQUAL(246, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_246(r, seq) \
+ BOOST_PP_NOT_EQUAL(247, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_247(r, seq) \
+ BOOST_PP_NOT_EQUAL(248, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_248(r, seq) \
+ BOOST_PP_NOT_EQUAL(249, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_249(r, seq) \
+ BOOST_PP_NOT_EQUAL(250, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_250(r, seq) \
+ BOOST_PP_NOT_EQUAL(251, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_251(r, seq) \
+ BOOST_PP_NOT_EQUAL(252, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_252(r, seq) \
+ BOOST_PP_NOT_EQUAL(253, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_253(r, seq) \
+ BOOST_PP_NOT_EQUAL(254, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_PRED_254(r, seq) \
+ BOOST_PP_NOT_EQUAL(255, BOOST_PP_SEQ_SIZE(seq))
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp b/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp
new file mode 100644
index 0000000000..1efce38864
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/argument_specs.hpp
@@ -0,0 +1,24 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_ARGUMENT_SPECS_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_ARGUMENT_SPECS_HPP
+
+#include <boost/preprocessor/tuple/elem.hpp>
+
+// Accessor macros for the argument specs tuple.
+#define BOOST_PARAMETER_FN_ARG_QUALIFIER(x) BOOST_PP_TUPLE_ELEM(4, 0, x)
+#define BOOST_PARAMETER_FN_ARG_KEYWORD(x) BOOST_PP_TUPLE_ELEM(4, 1, x)
+#define BOOST_PARAMETER_FN_ARG_PRED(x) BOOST_PP_TUPLE_ELEM(4, 2, x)
+#define BOOST_PARAMETER_FN_ARG_DEFAULT(x) BOOST_PP_TUPLE_ELEM(4, 3, x)
+
+#include <boost/parameter/aux_/preprocessor/qualifier.hpp>
+
+#define BOOST_PARAMETER_FN_ARG_NAME(x) \
+ BOOST_PARAMETER_UNQUALIFIED(BOOST_PARAMETER_FN_ARG_KEYWORD(x))
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/arity_range.hpp b/boost/parameter/aux_/preprocessor/impl/arity_range.hpp
new file mode 100644
index 0000000000..848648e4cc
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/arity_range.hpp
@@ -0,0 +1,42 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_ARITY_RANGE_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_ARITY_RANGE_HPP
+
+// Helper macros for BOOST_PARAMETER_ARITY_RANGE.
+#define BOOST_PARAMETER_ARITY_RANGE_M_optional(state) state
+#define BOOST_PARAMETER_ARITY_RANGE_M_deduced_optional(state) state
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+
+#define BOOST_PARAMETER_ARITY_RANGE_M_required(state) BOOST_PP_INC(state)
+#define BOOST_PARAMETER_ARITY_RANGE_M_deduced_required(state) \
+ BOOST_PP_INC(state)
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/argument_specs.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_ARITY_RANGE_M(s, state, x) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_ARITY_RANGE_M_ \
+ , BOOST_PARAMETER_FN_ARG_QUALIFIER(x) \
+ )(state)
+/**/
+
+#include <boost/preprocessor/seq/fold_left.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+
+// Calculates [begin, end) arity range.
+#define BOOST_PARAMETER_ARITY_RANGE(args) \
+ ( \
+ BOOST_PP_SEQ_FOLD_LEFT(BOOST_PARAMETER_ARITY_RANGE_M, 0, args) \
+ , BOOST_PP_INC(BOOST_PP_SEQ_SIZE(args)) \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/flatten.hpp b/boost/parameter/aux_/preprocessor/impl/flatten.hpp
new file mode 100644
index 0000000000..0d23a0c3b3
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/flatten.hpp
@@ -0,0 +1,143 @@
+// Copyright Daniel Wallin 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FLATTEN_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FLATTEN_HPP
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT_required required,
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT_optional optional,
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT_deduced deduced,
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_IDENTITY(x) x
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC0_DUMMY_ELEM(z, n, data) ~
+
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT(sub) \
+ BOOST_PP_CAT(BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT_, sub)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_AS_DEDUCED(x) \
+ BOOST_PP_CAT(deduced_, x)
+/**/
+
+#include <boost/preprocessor/detail/split.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_QUALIFIER(sub) \
+ BOOST_PP_SPLIT(0, BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT(sub))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_ARGS(sub) \
+ BOOST_PP_SPLIT(1, BOOST_PARAMETER_AUX_PP_FLATTEN_SPLIT(sub))
+/**/
+
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_ARITY_optional(arities) \
+ BOOST_PP_TUPLE_ELEM(3, 0, arities)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_ARITY_required(arities) \
+ BOOST_PP_TUPLE_ELEM(3, 1, arities)
+/**/
+
+#include <boost/preprocessor/arithmetic/sub.hpp>
+#include <boost/preprocessor/repetition/enum_trailing.hpp>
+#include <boost/preprocessor/tuple/rem.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC0(r, n, elem, data) \
+ (( \
+ BOOST_PP_TUPLE_ELEM(3, 2, data) \
+ , BOOST_PP_TUPLE_REM(BOOST_PP_TUPLE_ELEM(3, 0, data)) elem \
+ BOOST_PP_ENUM_TRAILING( \
+ BOOST_PP_SUB( \
+ BOOST_PP_TUPLE_ELEM(3, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(3, 0, data) \
+ ) \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC0_DUMMY_ELEM \
+ , ~ \
+ ) \
+ ))
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/for_each.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_AUX( \
+ r, arity, max_arity, spec, xform \
+) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_R( \
+ r \
+ , arity \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_ARGS(spec) \
+ , ( \
+ arity \
+ , max_arity \
+ , xform(BOOST_PARAMETER_AUX_PP_FLATTEN_QUALIFIER(spec)) \
+ ) \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC0 \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_optional(r, arities, spec) \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_AUX( \
+ r \
+ , BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_ARITY_ \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_QUALIFIER(spec) \
+ )(arities) \
+ , BOOST_PP_TUPLE_ELEM(3, 2, arities) \
+ , spec \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_IDENTITY \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_required(r, arities, spec) \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_optional(r, arities, spec)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_deduced_M(r, arities, n, spec) \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_AUX( \
+ r \
+ , BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_ARITY_ \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_QUALIFIER(spec) \
+ )(arities) \
+ , BOOST_PP_TUPLE_ELEM(3, 2, arities) \
+ , spec \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_AS_DEDUCED \
+ )
+/**/
+
+#include <boost/preprocessor/seq/for_each_i.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_deduced(r, arities, spec) \
+ BOOST_PP_SEQ_FOR_EACH_I_R( \
+ r \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_deduced_M \
+ , arities \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_ARGS(spec) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC(r, arities, spec) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC_ \
+ , BOOST_PARAMETER_AUX_PP_FLATTEN_QUALIFIER(spec) \
+ )(r, arities, spec)
+/**/
+
+#include <boost/preprocessor/seq/for_each.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FLATTEN( \
+ opt_arity, req_arity, wanted_arity, specs \
+) \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_PARAMETER_AUX_PP_FLATTEN_SPEC \
+ , (opt_arity, req_arity, wanted_arity) \
+ , specs \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/for_each.hpp b/boost/parameter/aux_/preprocessor/impl/for_each.hpp
new file mode 100644
index 0000000000..b6ece207f2
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/for_each.hpp
@@ -0,0 +1,152 @@
+// Copyright Daniel Wallin 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FOR_EACH_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FOR_EACH_HPP
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_head_aux2(x, y) (x, y), ~
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_head_aux3(x, y, z) (x, y, z), ~
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_head_aux4(x, y, z, u) (x, y, z, u), ~
+
+#define \
+BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_BOOST_PARAMETER_AUX_PP_FOR_EACH_END_S
+/**/
+
+#include <boost/preprocessor/detail/split.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_SPLIT_FIRST(x) \
+ BOOST_PP_SPLIT(0, x)
+/**/
+
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_head(n, x) \
+ BOOST_PP_SPLIT( \
+ 0 \
+ , BOOST_PP_CAT(BOOST_PARAMETER_AUX_PP_FOR_EACH_head_aux, n) x \
+ )
+/**/
+
+#include <boost/preprocessor/facilities/is_empty.hpp>
+#include <boost/preprocessor/logical/not.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_check(x) \
+ BOOST_PP_NOT(BOOST_PP_IS_EMPTY( \
+ BOOST_PP_CAT(BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_, x) \
+ )), ~
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux2(x, y) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_check(x)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux3(x, y, z) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_check(x)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux4(x, y, z, u) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux_check(x)
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux0(n, x) \
+ BOOST_PP_CAT(BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux, n) x
+/**/
+
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#if BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred(r, state) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_SPLIT_FIRST( \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux0( \
+ BOOST_PP_TUPLE_ELEM(5, 3, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 0, state) \
+ ) \
+ )
+/**/
+
+#else // !(BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC())
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_pred(r, state) \
+ BOOST_PP_SPLIT( \
+ 0 \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_pred_aux0( \
+ BOOST_PP_TUPLE_ELEM(5, 3, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 0, state) \
+ ) \
+ )
+/**/
+
+#endif // BOOST_PP_CONFIG_FLAGS() & BOOST_PP_CONFIG_MSVC()
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_op(r, state) \
+ ( \
+ BOOST_PP_TUPLE_EAT(BOOST_PP_TUPLE_ELEM(5, 3, state)) \
+ BOOST_PP_TUPLE_ELEM(5, 0, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 1, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 2, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 3, state) \
+ , BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(5, 4, state)) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_macro(r, state) \
+ BOOST_PP_TUPLE_ELEM(5, 2, state)( \
+ r \
+ , BOOST_PP_TUPLE_ELEM(5, 4, state) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_head( \
+ BOOST_PP_TUPLE_ELEM(5, 3, state) \
+ , BOOST_PP_TUPLE_ELEM(5, 0, state) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM(5, 1, state) \
+ )
+/**/
+
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_build_end_sentinel(z, n, text) \
+ BOOST_PP_COMMA_IF(n) BOOST_PARAMETER_AUX_PP_FOR_EACH_END_S
+/**/
+
+#include <boost/preprocessor/repetition/repeat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_build_end_sentinel_tuple(arity) \
+ ( \
+ BOOST_PP_REPEAT( \
+ arity, BOOST_PARAMETER_AUX_PP_FOR_EACH_build_end_sentinel, _ \
+ ) \
+ )
+/**/
+
+#include <boost/preprocessor/repetition/for.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH_R(r, arity, list, data, macro) \
+ BOOST_PP_CAT(BOOST_PP_FOR_, r)( \
+ (list \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_build_end_sentinel_tuple(arity) \
+ , data \
+ , macro \
+ , arity \
+ , 0 \
+ ) \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_pred \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_op \
+ , BOOST_PARAMETER_AUX_PP_FOR_EACH_macro \
+ )
+/**/
+
+#include <boost/preprocessor/repetition/deduce_r.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_FOR_EACH(arity, list, data, macro) \
+ BOOST_PARAMETER_AUX_PP_FOR_EACH_R( \
+ BOOST_PP_DEDUCE_R(), arity, list, data, macro \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp b/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp
new file mode 100644
index 0000000000..f5eb7ab797
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/forwarding_overloads.hpp
@@ -0,0 +1,509 @@
+// Copyright Daniel Wallin 2006.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FORWARDING_OVERLOADS_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FORWARDING_OVERLOADS_HPP
+
+#include <boost/parameter/config.hpp>
+
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+#include <boost/preprocessor/cat.hpp>
+
+// Expands to a forwarding parameter for a constructor or forwarding function.
+#define BOOST_PARAMETER_FUNCTION_ARG_TYPE_Z(z, n, type_prefix) \
+ BOOST_PP_CAT(type_prefix, n)&&
+/**/
+
+#include <utility>
+
+// Expands to an argument passed from a forwarding function to the front-end
+// implementation function, or from a constructor to its delegate.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_PARAM_Z(z, n, type_prefix) \
+ ::std::forward<BOOST_PP_CAT(type_prefix, n)>(BOOST_PP_CAT(a, n))
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+
+// Expands to the default constructor, whose job is to pass an empty back to
+// the delegate constructor of the base class.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_0_Z(z, n, data) \
+ inline BOOST_PP_TUPLE_ELEM(2, 0, data)() \
+ : BOOST_PARAMETER_PARENTHESIZED_TYPE(BOOST_PP_TUPLE_ELEM(2, 1, data))( \
+ BOOST_PP_CAT(constructor_parameters, __LINE__)()() \
+ ) \
+ { \
+ }
+/**/
+
+#include <boost/parameter/aux_/pp_impl/argument_pack.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/function_name.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+
+// Expands to a 0-arity forwarding function, whose job is to pass an empty
+// pack to the front-end implementation function.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_0_Z(z, n, data) \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(BOOST_PP_TUPLE_ELEM(4, 1, data)) \
+ inline BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )< \
+ ::boost::parameter::aux::argument_pack< \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ ) \
+ >::type \
+ >::type \
+ BOOST_PARAMETER_MEMBER_FUNCTION_NAME(BOOST_PP_TUPLE_ELEM(3, 0, data))() \
+ BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 3, data), const) \
+ { \
+ return BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 2, data), this->) \
+ BOOST_PARAMETER_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )( \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )()() \
+ ); \
+ }
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+
+// Expands to a forwarding function, whose job is to consolidate its arguments
+// into a pack for the front-end implementation function to take in.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_1_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename ParameterArgumentType)> \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(BOOST_PP_TUPLE_ELEM(4, 1, data)) \
+ inline typename BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )< \
+ typename ::boost::parameter::aux::argument_pack< \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ ) \
+ , BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_PARAMETER_FUNCTION_ARG_TYPE_Z \
+ , ParameterArgumentType \
+ ) \
+ >::type \
+ >::type \
+ BOOST_PARAMETER_MEMBER_FUNCTION_NAME(BOOST_PP_TUPLE_ELEM(4, 0, data))( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, ParameterArgumentType, && a) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z( \
+ z \
+ , BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ ) \
+ , n \
+ , ParameterArgumentType \
+ ) \
+ ) BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 3, data), const) \
+ { \
+ return BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 2, data), this->) \
+ BOOST_PARAMETER_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )( \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )()( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_PARAM_Z \
+ , ParameterArgumentType \
+ ) \
+ ) \
+ ); \
+ }
+/**/
+
+#include <boost/preprocessor/comparison/equal.hpp>
+
+// Expands to a constructor whose job is to consolidate its arguments into a
+// pack for the delegate constructor of the base class to take in.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_1_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename ParameterArgumentType)> \
+ BOOST_PP_EXPR_IF(BOOST_PP_EQUAL(n, 1), explicit) \
+ inline BOOST_PP_TUPLE_ELEM(2, 0, data)( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, ParameterArgumentType, && a) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z( \
+ z \
+ , BOOST_PP_CAT(constructor_parameters, __LINE__) \
+ , n \
+ , ParameterArgumentType \
+ ) \
+ ) : BOOST_PARAMETER_PARENTHESIZED_TYPE(BOOST_PP_TUPLE_ELEM(2, 1, data))( \
+ BOOST_PP_CAT(constructor_parameters, __LINE__)()( \
+ BOOST_PP_CAT(BOOST_PP_ENUM_, z)( \
+ n \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_PARAM_Z \
+ , ParameterArgumentType \
+ ) \
+ ) \
+ ) \
+ { \
+ }
+/**/
+
+#include <boost/preprocessor/control/if.hpp>
+
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_Z(z, n, data) \
+ BOOST_PP_IF( \
+ n \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_1_Z \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_0_Z \
+ )(z, n, data)
+/**/
+
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ BOOST_PP_IF( \
+ n \
+ , BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_1_Z \
+ , BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_0_Z \
+ )(z, n, data)
+/**/
+
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+// Helper macro for BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS_AUX(nm, impl, r, is_m, c) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ BOOST_PP_TUPLE_ELEM(2, 0, r) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, r) \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_Z \
+ , ( \
+ nm \
+ , impl \
+ , BOOST_PP_IF( \
+ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(nm) \
+ , 0 \
+ , is_m \
+ ) \
+ , c \
+ ) \
+ )
+/**/
+
+// Helper macro for BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS_AUX(class_, base, range) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ BOOST_PP_TUPLE_ELEM(2, 0, range) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, range) \
+ , BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_Z \
+ , (class_, base) \
+ )
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/arity_range.hpp>
+
+// Expands to the layer of forwarding functions for the function with the
+// specified name, whose arguments determine the range of arities.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS(name, impl, a, is_m, c) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS_AUX( \
+ name, impl, BOOST_PARAMETER_ARITY_RANGE(a), is_m, c \
+ )
+/**/
+
+// Expands to the layer of forwarding functions for the constructor in the
+// specified class, whose arguments determine the range of arities.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS(class_, base, args) \
+ BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS_AUX( \
+ class_, base, BOOST_PARAMETER_ARITY_RANGE(args) \
+ )
+/**/
+
+#else // !defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+// Expands to the default constructor, whose job is to pass an empty argument
+// pack back to the delegate constructor of the base class.
+#define BOOST_PARAMETER_DEFAULT_CONSTRUCTOR(z, n, seq) \
+ inline \
+ BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)))() \
+ : BOOST_PARAMETER_PARENTHESIZED_TYPE( \
+ BOOST_PP_TUPLE_ELEM( \
+ 2, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ )(BOOST_PP_CAT(constructor_parameters, __LINE__)()()) \
+ { \
+ }
+/**/
+
+#include <boost/parameter/aux_/pp_impl/argument_pack.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/function_name.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+
+// Expands to a 0-arity forwarding function, whose job is to pass an empty
+// argument pack to the front-end implementation function.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_0_ARITY(z, n, seq) \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ ) \
+ inline BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM( \
+ 4, 3, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ )< \
+ ::boost::parameter::aux::argument_pack< \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM( \
+ 4, 3, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ ) \
+ >::type \
+ >::type \
+ BOOST_PARAMETER_MEMBER_FUNCTION_NAME( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 0, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ )() BOOST_PP_EXPR_IF( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 3, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , const \
+ ) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 2, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM( \
+ 4, 3, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ )( \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM( \
+ 4, 1, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ , BOOST_PP_TUPLE_ELEM( \
+ 4, 3, BOOST_PP_SEQ_HEAD(BOOST_PP_SEQ_TAIL(seq)) \
+ ) \
+ )()() \
+ ); \
+ }
+/**/
+
+#include <boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+
+// Expands to a constructor whose job is to consolidate its arguments into a
+// pack for the delegate constructor of the base class to take in. Each
+// element in BOOST_PP_SEQ_TAIL(seq) determines the const-ness of the
+// corresponding argument.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_R(r, seq) \
+ template < \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)) \
+ , typename ParameterArgumentType \
+ ) \
+ > \
+ BOOST_PP_EXPR_IF( \
+ BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)), 1) \
+ , explicit \
+ ) \
+ inline BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_SEQ_HEAD(seq))( \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS( \
+ BOOST_PP_SEQ_TAIL(seq), (ParameterArgumentType)(a) \
+ ) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_MATCH( \
+ BOOST_PP_CAT(constructor_parameters, __LINE__) \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)) \
+ , ParameterArgumentType \
+ ) \
+ ) : BOOST_PARAMETER_PARENTHESIZED_TYPE( \
+ BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ )( \
+ BOOST_PP_CAT(constructor_parameters, __LINE__)()( \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)), a \
+ ) \
+ ) \
+ ) \
+ { \
+ }
+/**/
+
+// Expands to a forwarding function, whose job is to consolidate its arguments
+// into a pack for the front-end implementation function to take in. Each
+// element in BOOST_PP_SEQ_TAIL(seq) determines the const-ness of the
+// corresponding argument.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_R(r, seq) \
+ template < \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)) \
+ , typename ParameterArgumentType \
+ ) \
+ > \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ ) \
+ inline typename BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)) \
+ )< \
+ typename ::boost::parameter::aux::argument_pack< \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)) \
+ ) \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS( \
+ BOOST_PP_SEQ_TAIL(seq), (ParameterArgumentType) \
+ ) \
+ >::type \
+ >::type \
+ BOOST_PARAMETER_MEMBER_FUNCTION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 0, BOOST_PP_SEQ_HEAD(seq)) \
+ )( \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS( \
+ BOOST_PP_SEQ_TAIL(seq), (ParameterArgumentType)(a) \
+ ) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_MATCH( \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)) \
+ ) \
+ , BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)) \
+ , ParameterArgumentType \
+ ) \
+ ) BOOST_PP_EXPR_IF( \
+ BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)), const \
+ ) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PP_TUPLE_ELEM(4, 2, BOOST_PP_SEQ_HEAD(seq)) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)) \
+ )( \
+ BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, BOOST_PP_SEQ_HEAD(seq)) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_SEQ_HEAD(seq)) \
+ )()( \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_SEQ_SIZE(BOOST_PP_SEQ_TAIL(seq)), a \
+ ) \
+ ) \
+ ); \
+ }
+/**/
+
+#include <boost/parameter/aux_/preprocessor/binary_seq_for_each.hpp>
+#include <boost/preprocessor/control/if.hpp>
+
+// Expands to all constructors that take in n arguments. Enables
+// BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS_AUX to use
+// BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_Z within BOOST_PP_REPEAT_FROM_TO.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ BOOST_PP_IF( \
+ n \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_Z \
+ , BOOST_PARAMETER_DEFAULT_CONSTRUCTOR \
+ )(z, n, (BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_R)(data))
+/**/
+
+// Expands to all forwarding functions that take in n arguments. Enables
+// BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS_AUX to use
+// BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_Z within BOOST_PP_REPEAT_FROM_TO.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_Z(z, n, data) \
+ BOOST_PP_IF( \
+ n \
+ , BOOST_PARAMETER_AUX_PP_BINARY_SEQ_FOR_EACH_Z \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_0_ARITY \
+ )(z, n, (BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_R)(data))
+/**/
+
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+// Helper macro for BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS_AUX(class_, base, range) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ BOOST_PP_TUPLE_ELEM(2, 0, range) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, range) \
+ , BOOST_PARAMETER_CONSTRUCTOR_OVERLOAD_Z \
+ , (class_, base) \
+ )
+/**/
+
+// Helper macro for BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS_AUX(nm, impl, r, is_m, c) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ BOOST_PP_TUPLE_ELEM(2, 0, r) \
+ , BOOST_PP_TUPLE_ELEM(2, 1, r) \
+ , BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOAD_Z \
+ , ( \
+ nm \
+ , impl \
+ , BOOST_PP_IF( \
+ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(impl) \
+ , 0 \
+ , is_m \
+ ) \
+ , c \
+ ) \
+ )
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/arity_range.hpp>
+
+// Expands to the layer of forwarding functions for the constructor in the
+// specified class, whose arguments determine the range of arities.
+#define BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS(class_, base, args) \
+ BOOST_PARAMETER_CONSTRUCTOR_OVERLOADS_AUX( \
+ class_ \
+ , base \
+ , BOOST_PARAMETER_ARITY_RANGE(args) \
+ )
+/**/
+
+// Expands to the layer of forwarding functions for the function with the
+// specified name, whose arguments determine the range of arities.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS(name, impl, a, is_m, c) \
+ BOOST_PARAMETER_FUNCTION_FORWARD_OVERLOADS_AUX( \
+ name \
+ , impl \
+ , BOOST_PARAMETER_ARITY_RANGE(a) \
+ , is_m \
+ , c \
+ )
+/**/
+
+#endif // BOOST_PARAMETER_HAS_PERFECT_FORWARDING
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/function_cast.hpp b/boost/parameter/aux_/preprocessor/impl/function_cast.hpp
new file mode 100644
index 0000000000..2c40a25798
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/function_cast.hpp
@@ -0,0 +1,730 @@
+// Copyright Daniel Wallin 2006.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_CAST_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_CAST_HPP
+
+#include <boost/parameter/config.hpp>
+
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+namespace boost { namespace parameter { namespace aux {
+
+ // Handles possible implicit casts. Used by preprocessor.hpp
+ // to normalize user input.
+ //
+ // cast<void*>::execute() is identity
+ // cast<void*(X)>::execute() is identity
+ // cast<void(X)>::execute() casts to X
+ //
+ // preprocessor.hpp uses this like this:
+ //
+ // #define X(value, predicate)
+ // cast<void predicate>::execute(value)
+ //
+ // X(something, *)
+ // X(something, *(predicate))
+ // X(something, (int))
+ template <typename VoidExpr, typename Args>
+ struct cast;
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/aux_/use_default_tag.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename T, typename B>
+ inline ::boost::parameter::aux::use_default_tag
+ forward(::boost::parameter::aux::use_default_tag)
+ {
+ return ::boost::parameter::aux::use_default_tag();
+ }
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/mp11/integral.hpp>
+#include <boost/mp11/utility.hpp>
+#endif
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Args>
+ struct cast<void*,Args>
+ {
+ template <typename T, typename B>
+ struct apply
+ {
+ typedef typename ::boost::mpl
+ ::if_<B,T,::boost::mpl::true_>::type type;
+ };
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ template <typename T, typename B>
+ using fn = ::boost::mp11::mp_if<B,T,::boost::mp11::mp_true>;
+#endif
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/aux_/void.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Predicate, typename Args>
+ struct cast<void*(Predicate),Args>
+ : ::boost::parameter::aux::cast<void*,Args>
+ {
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/placeholders.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ // This is a hack used in cast<> to turn the user supplied type,
+ // which may or may not be a placeholder expression, into one,
+ // so that it will be properly evaluated by mpl::apply.
+ template <typename T, typename Dummy = ::boost::mpl::_1>
+ struct as_placeholder_expr
+ {
+ typedef T type;
+ };
+}}} // namespace boost::parameter::aux
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/mp11/list.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Target, typename Source, typename Args>
+ struct apply_target_fn
+ {
+ using type = ::boost::mp11
+ ::mp_apply_q<Target,::boost::mp11::mp_list<Source,Args> >;
+ };
+}}} // namespace boost::parameter::aux
+
+#endif
+
+#include <boost/mpl/apply.hpp>
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/parameter/aux_/has_nested_template_fn.hpp>
+#include <type_traits>
+#else
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+#endif
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Target, typename Source, typename Args>
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ using is_target_same_as_source = ::std::is_same<
+ typename ::std::remove_const<
+ typename ::std::remove_reference<
+ typename ::boost::mp11::mp_if<
+ ::boost::parameter::aux::has_nested_template_fn<Target>
+ , ::boost::parameter::aux
+ ::apply_target_fn<Target,Source,Args>
+ , ::boost::mpl::apply2<
+ ::boost::parameter::aux::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >
+ >::type
+ >::type
+ >::type
+ , typename ::std::remove_const<Source>::type
+ >;
+#else // !defined(BOOST_PARAMETER_CAN_USE_MP11)
+ struct is_target_same_as_source
+ : ::boost::mpl::if_<
+ ::boost::is_same<
+ typename ::boost::remove_const<
+ typename ::boost::remove_reference<
+ typename ::boost::mpl::apply2<
+ ::boost::parameter::aux
+ ::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >::type
+ >::type
+ >::type
+ , typename ::boost::remove_const<Source>::type
+ >
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+}}} // namespace boost::parameter::aux
+
+#if !defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/is_const.hpp>
+#endif
+
+namespace boost { namespace parameter { namespace aux {
+
+ // Covers the case where is_convertible<Source,Target> but not
+ // is_same<Source,Target>. Use cases are covered
+ // by test/normalize_argument_types.cpp
+ template <typename Source, typename Target>
+ class cast_convert
+ {
+ typedef ::boost::parameter::aux::cast_convert<Source,Target> _self;
+
+ public:
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ using type = typename ::boost::mp11::mp_if<
+ ::std::is_const<Source>
+ , ::std::add_const<Target>
+ , ::std::remove_const<Target>
+ >::type;
+#else
+ typedef typename boost::mpl::eval_if<
+ ::boost::is_const<Source>
+ , ::boost::add_const<Target>
+ , ::boost::remove_const<Target>
+ >::type type;
+#endif
+
+ private:
+ inline static typename _self::type
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ _copy(typename ::std::remove_const<Target>::type value)
+#else
+ _copy(typename ::boost::remove_const<Target>::type value)
+#endif
+ {
+ return value;
+ }
+
+ public:
+ inline static typename _self::type evaluate(Source&& source)
+ {
+ return _self::_copy(source);
+ }
+ };
+
+ template <typename Target, typename Source, typename Args>
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ using cast_impl = ::std::remove_reference<
+ typename ::boost::mp11::mp_if<
+ ::boost::parameter::aux::has_nested_template_fn<Target>
+ , ::boost::parameter::aux
+ ::is_target_same_as_source<Target,Source,Args>
+ , ::boost::mpl::apply2<
+ ::boost::parameter::aux::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >
+ >::type
+ >;
+#else
+ struct cast_impl
+ : ::boost::remove_reference<
+ typename ::boost::mpl::apply2<
+ ::boost::parameter::aux::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >::type
+ >
+ {
+ };
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Target, typename Args>
+ struct cast<void(Target),Args>
+ {
+ template <typename T, typename B>
+ struct apply
+ {
+ typedef typename ::boost::mpl::eval_if<
+ B
+ , ::boost::mpl::eval_if<
+ ::boost::parameter::aux
+ ::is_target_same_as_source<Target,T,Args>
+ , ::boost::mpl::identity<T>
+ , ::boost::parameter::aux::cast_impl<Target,T,Args>
+ >
+ , ::boost::parameter::aux
+ ::is_target_same_as_source<Target,T,Args>
+ >::type type;
+ };
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ template <typename T, typename B>
+ using fn = typename ::boost::mp11::mp_if<
+ B
+ , ::boost::mp11::mp_if<
+ ::boost::parameter::aux
+ ::is_target_same_as_source<Target,T,Args>
+ , ::boost::mp11::mp_identity<T>
+ , ::boost::parameter::aux::cast_impl<Target,T,Args>
+ >
+ , ::boost::parameter::aux
+ ::is_target_same_as_source<Target,T,Args>
+ >::type;
+#endif
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/value_type.hpp>
+
+#if !defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/mpl/apply_wrap.hpp>
+#endif
+
+// Expands to the target type of the argument as indicated by the predicate.
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#define BOOST_PARAMETER_FUNCTION_CAST_T(tag, predicate, args) \
+ ::boost::mp11::mp_apply_q< \
+ ::boost::parameter::aux::cast<void predicate, args> \
+ , ::boost::mp11::mp_list< \
+ typename ::boost::parameter::value_type< \
+ args \
+ , tag \
+ , ::boost::parameter::aux::use_default_tag \
+ >::type \
+ , ::boost::mp11::mp_true \
+ > \
+ >
+/**/
+#else // !defined(BOOST_PARAMETER_CAN_USE_MP11)
+#define BOOST_PARAMETER_FUNCTION_CAST_T(tag, predicate, args) \
+ typename ::boost::mpl::apply_wrap2< \
+ ::boost::parameter::aux::cast<void predicate, args> \
+ , typename ::boost::parameter::value_type< \
+ args \
+ , tag \
+ , ::boost::parameter::aux::use_default_tag \
+ >::type \
+ , ::boost::mpl::true_ \
+ >::type
+/**/
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+
+// Expands to boost::mpl::true_ if and only if the argument's source and
+// target types are the same.
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#define BOOST_PARAMETER_FUNCTION_CAST_B(tag, predicate, args) \
+ ::boost::mp11::mp_apply_q< \
+ ::boost::parameter::aux::cast<void predicate, args> \
+ , ::boost::mp11::mp_list< \
+ typename ::boost::parameter::value_type< \
+ args \
+ , tag \
+ , ::boost::parameter::aux::use_default_tag \
+ >::type \
+ , ::boost::mp11::mp_false \
+ > \
+ >
+/**/
+#else // !defined(BOOST_PARAMETER_CAN_USE_MP11)
+#define BOOST_PARAMETER_FUNCTION_CAST_B(tag, predicate, args) \
+ typename ::boost::mpl::apply_wrap2< \
+ ::boost::parameter::aux::cast<void predicate, args> \
+ , typename ::boost::parameter::value_type< \
+ args \
+ , tag \
+ , ::boost::parameter::aux::use_default_tag \
+ >::type \
+ , ::boost::mpl::false_ \
+ >::type
+/**/
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+
+#include <boost/core/enable_if.hpp>
+#include <utility>
+
+namespace boost { namespace parameter { namespace aux {
+
+ // If the source and target types are not the same,
+ // then perform an implicit conversion.
+ template <typename Target, typename B, typename Source>
+ inline typename ::boost::lazy_disable_if<
+ B
+ , ::boost::parameter::aux::cast_convert<Source,Target>
+ >::type
+ forward(Source&& source)
+ {
+ return ::boost::parameter::aux::cast_convert<Source,Target>
+ ::evaluate(::std::forward<Source>(source));
+ }
+
+ // If the source and target types are the same,
+ // then simply forward the argument.
+ // However, treat rvalue references to scalars as const lvalue references.
+ template <typename T, typename B>
+ inline typename ::boost::enable_if<B,T const&>::type forward(T const& t)
+ {
+ return t;
+ }
+
+ template <typename T, typename B>
+ inline typename ::boost::enable_if<
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ ::boost::mp11::mp_if<
+ B
+ , ::boost::mp11::mp_if<
+ ::std::is_const<T>
+ , ::boost::mp11::mp_false
+ , ::boost::mp11::mp_true
+ >
+ , ::boost::mp11::mp_false
+ >
+#else
+ typename ::boost::mpl::eval_if<
+ B
+ , ::boost::mpl::if_<
+ ::boost::is_const<T>
+ , ::boost::mpl::false_
+ , ::boost::mpl::true_
+ >
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+ , T&
+ >::type
+ forward(T& t)
+ {
+ return t;
+ }
+}}} // namespace boost::parameter::aux
+
+#include <boost/type_traits/is_scalar.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename T, typename B>
+ inline typename ::boost::enable_if<
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ ::boost::mp11::mp_if<
+ B
+ , ::boost::mp11::mp_if<
+ ::std::is_scalar<T>
+ , ::boost::mp11::mp_false
+ , ::boost::mp11::mp_true
+ >
+ , ::boost::mp11::mp_false
+ >
+#else
+ typename ::boost::mpl::eval_if<
+ B
+ , ::boost::mpl::if_<
+ ::boost::is_scalar<T>
+ , ::boost::mpl::false_
+ , ::boost::mpl::true_
+ >
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+ , T const&&
+ >::type
+ forward(T const&& t)
+ {
+ return static_cast<T const&&>(t);
+ }
+
+ template <typename T, typename B>
+ inline typename ::boost::enable_if<
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ ::boost::mp11::mp_if<
+ B
+ , ::boost::mp11::mp_if<
+ ::std::is_scalar<T>
+ , ::boost::mp11::mp_false
+ , ::boost::mp11::mp_true
+ >
+ , ::boost::mp11::mp_false
+ >
+#else
+ typename ::boost::mpl::eval_if<
+ B
+ , ::boost::mpl::if_<
+ ::boost::is_scalar<T>
+ , ::boost::mpl::false_
+ , ::boost::mpl::true_
+ >
+ , ::boost::mpl::false_
+ >::type
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+ , T&&
+ >::type
+ forward(T&& t)
+ {
+ return ::std::forward<T>(t);
+ }
+}}} // namespace boost::parameter::aux
+
+#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#define BOOST_PARAMETER_FUNCTION_CAST_T(value_t, predicate, args) value_t
+#define BOOST_PARAMETER_FUNCTION_CAST_B(value, predicate, args) value
+#else // no perfect forwarding support and no Borland workarounds needed
+
+namespace boost { namespace parameter { namespace aux {
+
+ // Handles possible implicit casts. Used by preprocessor.hpp
+ // to normalize user input.
+ //
+ // cast<void*>::execute() is identity
+ // cast<void*(X)>::execute() is identity
+ // cast<void(X)>::execute() casts to X
+ //
+ // preprocessor.hpp uses this like this:
+ //
+ // #define X(value, predicate)
+ // cast<void predicate>::execute(value)
+ //
+ // X(something, *)
+ // X(something, *(predicate))
+ // X(something, (int))
+ template <typename VoidExpr, typename Args>
+ struct cast;
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/aux_/use_default_tag.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/if.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Args>
+ struct cast<void*,Args>
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef T& type;
+ };
+
+ inline static ::boost::parameter::aux::use_default_tag
+ execute(::boost::parameter::aux::use_default_tag)
+ {
+ return ::boost::parameter::aux::use_default_tag();
+ }
+
+ template <typename U>
+ inline static U& execute(U& value)
+ {
+ return value;
+ }
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/aux_/void.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Predicate, typename Args>
+#if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580))
+ struct cast< ::boost::parameter::aux::voidstar(Predicate),Args>
+#else
+ struct cast<void*(Predicate),Args>
+#endif
+ : ::boost::parameter::aux::cast<void*,Args>
+ {
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/placeholders.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ // This is a hack used in cast<> to turn the user supplied type,
+ // which may or may not be a placeholder expression, into one,
+ // so that it will be properly evaluated by mpl::apply.
+ template <typename T, typename Dummy = ::boost::mpl::_1>
+ struct as_placeholder_expr
+ {
+ typedef T type;
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/apply.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Target, typename Source, typename Args>
+ struct is_target_same_as_source
+ : ::boost::mpl::if_<
+ ::boost::is_same<
+ typename ::boost::remove_const<
+ typename ::boost::remove_reference<
+ typename ::boost::mpl::apply2<
+ ::boost::parameter::aux
+ ::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >::type
+ >::type
+ >::type
+ , typename ::boost::remove_const<Source>::type
+ >
+ , ::boost::mpl::true_
+ , ::boost::mpl::false_
+ >::type
+ {
+ };
+
+ template <
+ typename Target
+ , typename Source
+ , typename Args
+ , typename Enable = ::boost::parameter::aux
+ ::is_target_same_as_source<Target,Source,Args>
+ >
+ struct cast_impl
+ {
+ typedef Source& type;
+
+ inline static Source& evaluate(Source& value)
+ {
+ return value;
+ }
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/add_lvalue_reference.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ // Covers the case where is_convertible<Source,Target> but not
+ // is_same<Source,Target>. Use cases are covered
+ // by test/normalize_argument_types.cpp
+ template <typename Source, typename Target>
+ class cast_convert
+ {
+ typedef ::boost::parameter::aux::cast_convert<Source,Target> _self;
+
+ public:
+ typedef typename ::boost::add_lvalue_reference<
+ typename ::boost::add_const<Target>::type
+ >::type type;
+
+ private:
+ template <typename U>
+ inline static typename _self::type _mod_const(U const& u)
+ {
+ return u;
+ }
+
+ inline static Target _copy(Target value)
+ {
+ return value;
+ }
+
+ public:
+ inline static typename _self::type evaluate(Source& source)
+ {
+ return _self::_mod_const(_self::_copy(source));
+ }
+ };
+
+ template <typename Target, typename Source, typename Args>
+ struct cast_impl<Target,Source,Args,::boost::mpl::false_>
+ : ::boost::parameter::aux::cast_convert<
+ Source,
+ typename ::boost::mpl::apply2<
+ ::boost::parameter::aux::as_placeholder_expr<Target>
+ , Source
+ , Args
+ >::type
+ >
+ {
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/eval_if.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Target, typename Args>
+ struct cast<void(Target),Args>
+ {
+ template <typename T>
+ struct apply
+ {
+ typedef typename ::boost::mpl::eval_if<
+ ::boost::parameter::aux
+ ::is_target_same_as_source<Target,T,Args>
+ , ::boost::add_lvalue_reference<T>
+ , ::boost::parameter::aux::cast_impl<
+ Target
+ , T
+ , Args
+ , ::boost::mpl::false_
+ >
+ >::type type;
+ };
+
+ inline static ::boost::parameter::aux::use_default_tag
+ execute(::boost::parameter::aux::use_default_tag)
+ {
+ return ::boost::parameter::aux::use_default_tag();
+ }
+
+ template <typename U>
+ inline static typename ::boost::parameter::aux
+ ::cast_impl<Target,U const,Args>::type
+ execute(U const& value)
+ {
+ return ::boost::parameter::aux
+ ::cast_impl<Target,U const,Args>::evaluate(value);
+ }
+
+ template <typename U>
+ inline static typename ::boost::parameter::aux
+ ::cast_impl<Target,U,Args>::type
+ execute(U& value)
+ {
+ return ::boost::parameter::aux
+ ::cast_impl<Target,U,Args>::evaluate(value);
+ }
+ };
+}}} // namespace boost::parameter::aux
+
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/parameter/value_type.hpp>
+
+// Expands to the reference-qualified target type of the argument
+// as indicated by the predicate.
+#define BOOST_PARAMETER_FUNCTION_CAST_T(tag, predicate, args) \
+ typename ::boost::mpl::apply_wrap1< \
+ ::boost::parameter::aux::cast<void predicate, args> \
+ , typename ::boost::parameter::value_type< \
+ args \
+ , tag \
+ , ::boost::parameter::aux::use_default_tag \
+ >::type \
+ >::type
+/**/
+
+// Expands to the converted or passed-through value
+// as indicated by the predicate.
+#define BOOST_PARAMETER_FUNCTION_CAST_B(value, predicate, args) \
+ ::boost::parameter::aux::cast<void predicate, args>::execute(value)
+/**/
+
+#endif // perfect forwarding support, or Borland workarounds needed
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp b/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp
new file mode 100644
index 0000000000..3c240d527c
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/function_dispatch_layer.hpp
@@ -0,0 +1,474 @@
+// Copyright Daniel Wallin 2006.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_DISPATCH_LAYER_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_DISPATCH_LAYER_HPP
+
+#include <boost/preprocessor/cat.hpp>
+
+// Expands to keyword_tag_type for some keyword_tag.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_TYPE(keyword_tag) \
+ BOOST_PP_CAT(keyword_tag, _type)
+/**/
+
+// Expands to a template parameter for each dispatch function.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_TEMPLATE_ARG(r, macro, arg) \
+ , typename BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_TYPE(macro(arg))
+/**/
+
+#include <boost/parameter/config.hpp>
+
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+// Expands to a forwarding parameter for a dispatch function.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_DEFN(r, macro, arg) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_TYPE(macro(arg))&& macro(arg)
+/**/
+
+#include <utility>
+
+// Expands to an argument passed from one dispatch function to the next.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_FWD(r, macro, arg) \
+ , ::std::forward< \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_TYPE(macro(arg)) \
+ >(macro(arg))
+/**/
+
+#else // !defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+// Expands to a forwarding parameter for a dispatch function. The parameter
+// type stores its const-ness.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_DEFN(r, macro, arg) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_TYPE(macro(arg))& macro(arg)
+/**/
+
+#include <boost/parameter/aux_/as_lvalue.hpp>
+
+// Expands to an argument passed from one dispatch function to the next.
+// Explicit forwarding takes the form of forcing the argument to be an lvalue.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_FWD(r, macro, arg) \
+ , ::boost::parameter::aux::as_lvalue(macro(arg))
+/**/
+
+#endif // BOOST_PARAMETER_HAS_PERFECT_FORWARDING
+
+#include <boost/parameter/aux_/preprocessor/impl/argument_specs.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/split_args.hpp>
+#include <boost/preprocessor/seq/for_each.hpp>
+#include <boost/preprocessor/seq/first_n.hpp>
+
+// Iterates through all required arguments and the first n optional arguments,
+// passing each argument to the specified macro.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT(macro, n, split_args) \
+ BOOST_PP_SEQ_FOR_EACH( \
+ macro \
+ , BOOST_PARAMETER_FN_ARG_NAME \
+ , BOOST_PARAMETER_SPLIT_ARG_REQ_SEQ(split_args) \
+ ) \
+ BOOST_PP_SEQ_FOR_EACH( \
+ macro \
+ , BOOST_PARAMETER_FN_ARG_NAME \
+ , BOOST_PP_SEQ_FIRST_N( \
+ n, BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(split_args) \
+ ) \
+ )
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/function_name.hpp>
+#include <boost/preprocessor/control/if.hpp>
+
+// Produces a name for the dispatch functions.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, n) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x) \
+ , boost_param_dispatch_const_ \
+ , boost_param_dispatch_ \
+ ) \
+ , BOOST_PP_CAT(BOOST_PP_CAT(n, boost_), __LINE__) \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ ) \
+ )
+/**/
+
+// Expands to the template parameter list of the dispatch function with all
+// required and first n optional parameters; also extracts the static keyword
+// if present.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ template < \
+ typename ResultType, typename Args \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_TEMPLATE_ARG \
+ , n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ > BOOST_PARAMETER_MEMBER_FUNCTION_STATIC( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ )
+/**/
+
+#include <boost/parameter/aux_/use_default_tag.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+
+// Expands to the result type, name, parenthesized list of all required and
+// n optional parameters, and const-ness of the dispatch function; the bit
+// value b determines whether or not this dispatch function takes in
+// boost::parameter::aux::use_default_tag as its last parameter.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, b1, b2) \
+ ResultType BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, b1)( \
+ ResultType(*)(), Args const& args, long \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_DEFN \
+ , n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ BOOST_PP_COMMA_IF(b2) \
+ BOOST_PP_EXPR_IF(b2, ::boost::parameter::aux::use_default_tag) \
+ ) BOOST_PP_EXPR_IF(BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x), const)
+/**/
+
+// Expands to a forward declaration of the dispatch function that takes in
+// all required and the first n optional parameters, but not
+// boost::parameter::aux::use_default_tag.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_FWD_DECL_0_Z(z, n, x) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, 0, 0);
+/**/
+
+// Expands to a forward declaration of the dispatch function that takes in
+// all required parameters, the first n optional parameters, and
+// boost::parameter::aux::use_default_tag.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_FWD_DECL_1_Z(z, n, x) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, 0, 1);
+/**/
+
+#include <boost/preprocessor/seq/elem.hpp>
+
+// Expands to the default value of the (n + 1)th optional parameter.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_DEFAULT_AUX(n, s_args) \
+ BOOST_PARAMETER_FN_ARG_DEFAULT( \
+ BOOST_PP_SEQ_ELEM(n, BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(s_args)) \
+ )
+/**/
+
+#include <boost/parameter/keyword.hpp>
+
+// Expands to the assignment portion which binds the default value to the
+// (n + 1)th optional parameter before composing it with the argument-pack
+// parameter passed in to the n-th dispatch function.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_DEFAULT(n, s_args, tag_ns) \
+ ::boost::parameter::keyword< \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME( \
+ BOOST_PP_SEQ_ELEM(n, BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(s_args)) \
+ ) \
+ >::instance = BOOST_PARAMETER_FUNCTION_DISPATCH_DEFAULT_AUX(n, s_args)
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/function_cast.hpp>
+
+// Takes in the arg tuple (name, pred) and the tag namespace.
+// Extracts the corresponding required argument from the pack.
+// This form enables BOOST_PARAMETER_FUNCTION_DISPATCH_LAYER to use it
+// from within BOOST_PP_SEQ_FOR_EACH.
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+// The boost::parameter::aux::forward wrapper is necessary to transmit the
+// target type to the next dispatch function. Otherwise, the argument will
+// retain its original type. -- Cromwell D. Enage
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_CAST_R(r, tag_ns, arg) \
+ , ::boost::parameter::aux::forward< \
+ BOOST_PARAMETER_FUNCTION_CAST_T( \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_CAST_B( \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ ) \
+ >( \
+ args[ \
+ ::boost::parameter::keyword< \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ >::instance \
+ ] \
+ )
+/**/
+#else // !defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+// The explicit type cast is necessary to transmit the target type to the next
+// dispatch function. Otherwise, the argument will retain its original type.
+// -- Cromwell D. Enage
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_CAST_R(r, tag_ns, arg) \
+ , BOOST_PARAMETER_FUNCTION_CAST_T( \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ )( \
+ args[ \
+ ::boost::parameter::keyword< \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ >::instance \
+ ] \
+ )
+/**/
+#endif // BOOST_PARAMETER_HAS_PERFECT_FORWARDING
+
+// Takes in the arg tuple (name, pred, default) and the tag namespace.
+// Extracts the corresponding optional argument from the pack if specified,
+// otherwise temporarily passes use_default_tag() to the dispatch functions.
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+// The boost::parameter::aux::forward wrapper is necessary to transmit the
+// target type to the next dispatch function. Otherwise, the argument will
+// retain its original type. -- Cromwell D. Enage
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_OPT_ARG_CAST(arg, tag_ns) \
+ ::boost::parameter::aux::forward< \
+ BOOST_PARAMETER_FUNCTION_CAST_T( \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_CAST_B( \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ ) \
+ >( \
+ args[ \
+ ::boost::parameter::keyword< \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ >::instance || ::boost::parameter::aux::use_default_tag() \
+ ] \
+ )
+/**/
+#else // !defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_OPT_ARG_CAST(arg, tag_ns) \
+ BOOST_PARAMETER_FUNCTION_CAST_B( \
+ args[ \
+ ::boost::parameter::keyword< \
+ tag_ns::BOOST_PARAMETER_FN_ARG_NAME(arg) \
+ >::instance || ::boost::parameter::aux::use_default_tag() \
+ ] \
+ , BOOST_PARAMETER_FN_ARG_PRED(arg) \
+ , Args \
+ )
+/**/
+#endif // BOOST_PARAMETER_HAS_PERFECT_FORWARDING
+
+#include <boost/parameter/aux_/preprocessor/nullptr.hpp>
+
+// Expands to three dispatch functions that take in all required parameters
+// and the first n optional parameters. The third dispatch function bears
+// the same name as the first but takes in use_default_tag as the last
+// parameter. The second dispatch function bears a different name from the
+// other two.
+//
+// x is a tuple:
+//
+// (name, split_args, is_const, tag_namespace)
+//
+// Where name is the base name of the functions, and split_args is a tuple:
+//
+// (required_count, required_args, optional_count, required_args)
+//
+// The first dispatch function queries args if it has bound the (n + 1)th
+// optional parameter to a user-defined argument. If so, then it forwards
+// its own arguments followed by the user-defined argument to the dispatch
+// function that takes in all required parameters and the first (n + 1)
+// optional parameters, but not use_default_tag. Otherwise, it forwards
+// its own arguments to the third dispatch function.
+//
+// The third dispatch function appends the default value of the (n + 1)th
+// optional parameter to its copy of args. Then it forwards this copy, all
+// required parameters, and the first n (not n + 1) optional parameters to
+// the second dispatch function.
+//
+// The second dispatch function forwards its arguments, then the (n + 1)th
+// optional parameter that it extracts from args, to the other-named dispatch
+// function that takes in all required parameters and the first (n + 1)
+// optional parameters, but not use_default_tag.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_OVERLOAD_Z(z, n, x) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ inline BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, 0, 0) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_IS_MEMBER(x) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, 0)( \
+ static_cast<ResultType(*)()>(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , args \
+ , 0L \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_FWD \
+ , n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_OPT_ARG_CAST( \
+ BOOST_PP_SEQ_ELEM( \
+ n \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_TAG_NAMESPACE(x) \
+ ) \
+ ); \
+ } \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ inline BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, 1, 0) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_IS_MEMBER(x) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, 0)( \
+ static_cast<ResultType(*)()>(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , args \
+ , 0L \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_FWD \
+ , n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , args[ \
+ ::boost::parameter::keyword< \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_TAG_NAMESPACE(x):: \
+ BOOST_PARAMETER_FN_ARG_NAME( \
+ BOOST_PP_SEQ_ELEM( \
+ n \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ ) \
+ ) \
+ >::instance \
+ ] \
+ ); \
+ } \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL(n, x) \
+ inline BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN(n, x, 0, 1) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_IS_MEMBER(x) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, 1)( \
+ static_cast<ResultType(*)()>(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , (args \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_DEFAULT( \
+ n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_TAG_NAMESPACE(x) \
+ ) \
+ ) \
+ , 0L \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_REPEAT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_FWD \
+ , n \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ ); \
+ }
+/**/
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+
+// x is a tuple:
+//
+// (base_name, split_args, is_member, is_const, tag_namespace)
+//
+// Generates all dispatch functions for the function named base_name. Each
+// dispatch function that takes in n optional parameters passes the default
+// value of the (n + 1)th optional parameter to the next dispatch function.
+// The last dispatch function is the back-end implementation, so only the
+// header is generated: the user is expected to supply the body.
+//
+// Also generates the front-end implementation function, which uses
+// BOOST_PARAMETER_FUNCTION_CAST to extract each argument from the argument
+// pack.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_LAYER(fwd_decl, x) \
+ BOOST_PP_IF(fwd_decl, BOOST_PP_REPEAT_FROM_TO, BOOST_PP_TUPLE_EAT(4))( \
+ 0 \
+ , BOOST_PP_INC( \
+ BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_FWD_DECL_0_Z \
+ , x \
+ ) \
+ BOOST_PP_IF(fwd_decl, BOOST_PP_REPEAT_FROM_TO, BOOST_PP_TUPLE_EAT(4))( \
+ 0 \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_FWD_DECL_1_Z \
+ , x \
+ ) \
+ template <typename Args> BOOST_PARAMETER_MEMBER_FUNCTION_STATIC( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ ) inline typename BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x) \
+ )<Args>::type BOOST_PARAMETER_FUNCTION_IMPL_NAME( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x) \
+ )(Args const& args) \
+ BOOST_PP_EXPR_IF(BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x), const) \
+ { \
+ return BOOST_PP_EXPR_IF( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_IS_MEMBER(x) \
+ , this-> \
+ ) BOOST_PARAMETER_FUNCTION_DISPATCH_NAME(x, 0)( \
+ static_cast< \
+ typename BOOST_PARAMETER_FUNCTION_RESULT_NAME( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x) \
+ )<Args>::type(*)() \
+ >(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , args \
+ , 0L \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_ARG_CAST_R \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_TAG_NAMESPACE(x) \
+ , BOOST_PARAMETER_SPLIT_ARG_REQ_SEQ( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ ) \
+ ); \
+ } \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 0 \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , BOOST_PARAMETER_FUNCTION_DISPATCH_OVERLOAD_Z \
+ , x \
+ ) \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_TPL( \
+ BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , x \
+ ) \
+ inline BOOST_PARAMETER_FUNCTION_DISPATCH_HEAD_PRN( \
+ BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT( \
+ BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ ) \
+ , x \
+ , 0 \
+ , 0 \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp b/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp
new file mode 100644
index 0000000000..b24c898e69
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/function_dispatch_tuple.hpp
@@ -0,0 +1,33 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_DISPATCH_TUPLE_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_DISPATCH_TUPLE_HPP
+
+#include <boost/preprocessor/tuple/elem.hpp>
+
+// Accessor macros for the input tuple to the dispatch macros.
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_BASE_NAME(x) \
+ BOOST_PP_TUPLE_ELEM(5, 0, x)
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_SPLIT_ARGS(x) \
+ BOOST_PP_TUPLE_ELEM(5, 1, x)
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_IS_MEMBER(x) \
+ BOOST_PP_TUPLE_ELEM(5, 2, x)
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_IS_CONST(x) \
+ BOOST_PP_TUPLE_ELEM(5, 3, x)
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_DISPATCH_TAG_NAMESPACE(x) \
+ BOOST_PP_TUPLE_ELEM(5, 4, x)
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp b/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp
new file mode 100644
index 0000000000..3b452ed960
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/function_forward_match.hpp
@@ -0,0 +1,43 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_FORWARD_MATCH_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_FORWARD_MATCH_HPP
+
+#include <boost/parameter/config.hpp>
+
+#if !defined(BOOST_NO_SFINAE) && \
+ !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x592))
+
+#include <boost/parameter/aux_/pp_impl/match.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+
+// Expands to an extra argument that is well-formed
+// iff all Args... satisfy the requirements set by params.
+#define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH(params, n, prefix) \
+ , typename ::boost::parameter::aux::match< \
+ params BOOST_PP_ENUM_TRAILING_PARAMS(n, prefix) \
+ >::type = params()
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z(z, params, n, prefix) \
+ , typename ::boost::parameter::aux::match< \
+ params BOOST_PP_ENUM_TRAILING_PARAMS_Z(z, n, prefix) \
+ >::type = params()
+/**/
+
+#else // SFINAE/Borland workarounds needed.
+
+#define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH(params, n, prefix) \
+ , params = params()
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_FORWARD_MATCH_Z(z, params, n, prefix) \
+ , params = params()
+/**/
+
+#endif
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/function_name.hpp b/boost/parameter/aux_/preprocessor/impl/function_name.hpp
new file mode 100644
index 0000000000..af5d194c49
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/function_name.hpp
@@ -0,0 +1,152 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_NAME_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_NAME_HPP
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_CHECK_STATIC_static ()
+/**/
+
+#include <boost/parameter/aux_/preprocessor/is_nullary.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name) \
+ BOOST_PARAMETER_IS_NULLARY( \
+ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_CHECK_STATIC_, name) \
+ )
+/**/
+
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/config.hpp>
+
+#if defined(BOOST_MSVC)
+
+// Workaround for MSVC preprocessor.
+//
+// When stripping static from "static f", msvc will produce " f". The leading
+// whitespace doesn't go away when pasting the token with something else, so
+// this thing is a hack to strip the whitespace.
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_static (
+/**/
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_AUX(name) \
+ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_, name))
+/**/
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC(name) \
+ BOOST_PP_SEQ_HEAD( \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_AUX(name) \
+ )
+/**/
+
+#else
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_static
+/**/
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC(name) \
+ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_, name)
+/**/
+
+#endif // MSVC workarounds needed
+
+#include <boost/preprocessor/control/expr_if.hpp>
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(name) \
+ BOOST_PP_EXPR_IF( \
+ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name), static \
+ )
+/**/
+
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+
+#define BOOST_PARAMETER_MEMBER_FUNCTION_NAME(name) \
+ BOOST_PP_IF( \
+ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC \
+ , name BOOST_PP_TUPLE_EAT(1) \
+ )(name)
+/**/
+
+// Produces a name for a parameter specification for the function named base.
+#define BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME(base, is_const) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_parameters_const_ \
+ , boost_param_parameters_ \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )
+/**/
+
+// Produces a name for a result type metafunction for the no-spec function
+// named base.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME(base, is_const) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_no_spec_result_const_ \
+ , boost_param_no_spec_result_ \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )
+/**/
+
+// Produces a name for a result type metafunction for the function named base.
+#define BOOST_PARAMETER_FUNCTION_RESULT_NAME(base, is_const) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_result_const_ \
+ , boost_param_result_ \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )
+/**/
+
+// Produces a name for the implementation function to which the no-spec
+// function named base forwards its result type and argument pack.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME(base, is_const) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_no_spec_impl_const \
+ , boost_param_no_spec_impl \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )
+/**/
+
+// Can't do boost_param_impl_ ## basee
+// because base might start with an underscore.
+// daniel: what? how is that relevant? the reason for using CAT()
+// is to make sure base is expanded. i'm not sure we need to here,
+// but it's more stable to do it.
+#define BOOST_PARAMETER_FUNCTION_IMPL_NAME(base, is_const) \
+ BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF(is_const, boost_param_impl_const, boost_param_impl) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp b/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp
new file mode 100644
index 0000000000..345e408dd4
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/no_spec_overloads.hpp
@@ -0,0 +1,331 @@
+// Copyright Cromwell D. Enage 2018.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_NO_SPEC_OVERLOADS_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_NO_SPEC_OVERLOADS_HPP
+
+#include <boost/parameter/aux_/preprocessor/impl/function_name.hpp>
+
+// Defines the no-spec implementation function header.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_HEAD(name, is_const) \
+ template <typename ResultType, typename Args> \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(name) ResultType \
+ BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME( \
+ name, is_const \
+ )(ResultType(*)(), Args const& args)
+/**/
+
+#include <boost/parameter/config.hpp>
+
+#if defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp>
+
+// Expands to the result metafunction for the specified no-spec function.
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_HEAD(result, name, is_const) \
+ template <typename TaggedArg0, typename ...TaggedArgs> \
+ using BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME(name, is_const) \
+ = typename BOOST_PARAMETER_PARENTHESIZED_RETURN_TYPE(result);
+/**/
+#else
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_HEAD(result, name, is_const) \
+ template <typename TaggedArg0, typename ...TaggedArgs> \
+ struct BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME(name, is_const) \
+ : BOOST_PARAMETER_PARENTHESIZED_RETURN_TYPE(result) \
+ { \
+ };
+/**/
+#endif // BOOST_PARAMETER_CAN_USE_MP11
+
+#include <boost/parameter/compose.hpp>
+#include <boost/parameter/are_tagged_arguments.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp>
+#include <boost/core/enable_if.hpp>
+
+// Exapnds to a variadic constructor that is enabled if and only if all its
+// arguments are tagged arguments. The enclosing class must inherit from the
+// specified base class, which in turn must implement a constructor that takes
+// in the argument pack that this one passes on.
+#define BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR(class_, base) \
+ template < \
+ typename TaggedArg0 \
+ , typename ...TaggedArgs \
+ , typename = typename ::boost::enable_if< \
+ ::boost::parameter \
+ ::are_tagged_arguments<TaggedArg0,TaggedArgs...> \
+ >::type \
+ > inline explicit \
+ class_(TaggedArg0 const& arg0, TaggedArgs const&... args) \
+ : BOOST_PARAMETER_PARENTHESIZED_TYPE(base)( \
+ ::boost::parameter::compose(arg0, args...) \
+ ) \
+ { \
+ }
+/**/
+
+// Exapnds to a variadic constructor that is enabled if and only if all its
+// arguments are tagged arguments. The specified function must be able to
+// take in the argument pack that this constructor passes on.
+#define BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR(class_, func) \
+ template < \
+ typename TaggedArg0 \
+ , typename ...TaggedArgs \
+ , typename = typename ::boost::enable_if< \
+ ::boost::parameter \
+ ::are_tagged_arguments<TaggedArg0,TaggedArgs...> \
+ >::type \
+ > inline explicit \
+ class_(TaggedArg0 const& arg0, TaggedArgs const&... args) \
+ { \
+ func(::boost::parameter::compose(arg0, args...)); \
+ }
+/**/
+
+#include <boost/parameter/aux_/preprocessor/nullptr.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+
+// Exapnds to a variadic function that is enabled if and only if
+// all its arguments are tagged arguments.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_OVERLOAD(name, impl, is_m, c) \
+ template <typename TaggedArg0, typename ...TaggedArgs> \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(impl) \
+ inline typename ::boost::lazy_enable_if< \
+ ::boost::parameter \
+ ::are_tagged_arguments<TaggedArg0,TaggedArgs...> \
+ , BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ impl, c \
+ )<TaggedArg0,TaggedArgs...> \
+ >::type BOOST_PARAMETER_MEMBER_FUNCTION_NAME(name) \
+ (TaggedArg0 const& arg0, TaggedArgs const&... args) \
+ BOOST_PP_EXPR_IF(c, const) \
+ { \
+ return BOOST_PP_EXPR_IF(is_m, this->) \
+ BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME(impl, c)( \
+ static_cast< \
+ typename BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ impl, c \
+ )<TaggedArg0,TaggedArgs...>::type(*)() \
+ >(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , ::boost::parameter::compose(arg0, args...) \
+ ); \
+ }
+/**/
+
+#else // !defined(BOOST_PARAMETER_HAS_PERFECT_FORWARDING)
+
+#include <boost/parameter/aux_/void.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp>
+#include <boost/preprocessor/facilities/intercept.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+
+// Expands to the result metafunction for the specified no-spec function.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_HEAD(result, name, is_const) \
+ template < \
+ BOOST_PP_ENUM_BINARY_PARAMS( \
+ BOOST_PARAMETER_COMPOSE_MAX_ARITY \
+ , typename TaggedArg \
+ , = ::boost::parameter::void_ BOOST_PP_INTERCEPT \
+ ) \
+ > \
+ struct BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME(name, is_const) \
+ : BOOST_PARAMETER_PARENTHESIZED_RETURN_TYPE(result) \
+ { \
+ };
+/**/
+
+#include <boost/parameter/compose.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp>
+#include <boost/preprocessor/comparison/equal.hpp>
+#include <boost/preprocessor/control/expr_if.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/tuple/elem.hpp>
+
+#if defined(BOOST_NO_SFINAE)
+
+// Exapnds to a tagged-argument constructor overload that passes the argument
+// pack to the base class delegate constructor.
+#define BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PP_EXPR_IF(BOOST_PP_EQUAL(n, 1), explicit) inline \
+ BOOST_PP_TUPLE_ELEM(2, 0, data)( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& arg) \
+ ) : BOOST_PARAMETER_PARENTHESIZED_TYPE(BOOST_PP_TUPLE_ELEM(2, 1, data))( \
+ ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, arg)) \
+ ) \
+ { \
+ }
+/**/
+
+// Exapnds to a tagged-argument constructor overload that passes the argument
+// pack to the delegate function.
+#define BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PP_EXPR_IF(BOOST_PP_EQUAL(n, 1), explicit) inline \
+ BOOST_PP_TUPLE_ELEM(2, 0, data)( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& a) \
+ ) \
+ { \
+ BOOST_PP_TUPLE_ELEM(2, 1, data)( \
+ ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, a)) \
+ ); \
+ }
+/**/
+
+#include <boost/parameter/aux_/preprocessor/nullptr.hpp>
+
+// Exapnds to a tagged-argument function overload.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(BOOST_PP_TUPLE_ELEM(4, 1, data)) \
+ inline typename BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )<BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg)>::type \
+ BOOST_PARAMETER_MEMBER_FUNCTION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 0, data) \
+ )(BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& arg)) \
+ BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 3, data), const) \
+ { \
+ return BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 2, data), this->) \
+ BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )( \
+ static_cast< \
+ typename BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )<BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg)>::type(*)() \
+ >(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, arg)) \
+ ); \
+ }
+/**/
+
+#else // !defined(BOOST_NO_SFINAE)
+
+#include <boost/parameter/are_tagged_arguments.hpp>
+#include <boost/parameter/aux_/preprocessor/nullptr.hpp>
+#include <boost/core/enable_if.hpp>
+
+// Exapnds to a tagged-argument constructor overload that passes the argument
+// pack to the base class delegate constructor. This constructor is enabled
+// if and only if all its arguments are tagged arguments.
+#define BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PP_EXPR_IF(BOOST_PP_EQUAL(n, 1), explicit) inline \
+ BOOST_PP_TUPLE_ELEM(2, 0, data)( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& arg) \
+ , typename ::boost::enable_if< \
+ ::boost::parameter::are_tagged_arguments< \
+ BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg) \
+ > \
+ >::type* = BOOST_PARAMETER_AUX_PP_NULLPTR \
+ ) : BOOST_PARAMETER_PARENTHESIZED_TYPE(BOOST_PP_TUPLE_ELEM(2, 1, data))( \
+ ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, arg)) \
+ ) \
+ { \
+ }
+/**/
+
+// Exapnds to a tagged-argument constructor overload that passes the argument
+// pack to the delegate function. This constructor is enabled if and only if
+// all its arguments are tagged arguments.
+#define BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PP_EXPR_IF(BOOST_PP_EQUAL(n, 1), explicit) inline \
+ BOOST_PP_TUPLE_ELEM(2, 0, data)( \
+ BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& a) \
+ , typename ::boost::enable_if< \
+ ::boost::parameter::are_tagged_arguments< \
+ BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg) \
+ > \
+ >::type* = BOOST_PARAMETER_AUX_PP_NULLPTR \
+ ) \
+ { \
+ BOOST_PP_TUPLE_ELEM(2, 1, data)( \
+ ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, a)) \
+ ); \
+ }
+/**/
+
+// Exapnds to a function overload that is enabled if and only if
+// all its arguments are tagged arguments.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_OVERLOAD_Z(z, n, data) \
+ template <BOOST_PP_ENUM_PARAMS_Z(z, n, typename TaggedArg)> \
+ BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(BOOST_PP_TUPLE_ELEM(4, 1, data)) \
+ inline typename ::boost::lazy_enable_if< \
+ ::boost::parameter \
+ ::are_tagged_arguments<BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg)> \
+ , BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )<BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg)> \
+ >::type BOOST_PARAMETER_MEMBER_FUNCTION_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 0, data) \
+ )(BOOST_PP_ENUM_BINARY_PARAMS_Z(z, n, TaggedArg, const& arg)) \
+ BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 3, data), const) \
+ { \
+ return BOOST_PP_EXPR_IF(BOOST_PP_TUPLE_ELEM(4, 2, data), this->) \
+ BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )( \
+ static_cast< \
+ typename BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME( \
+ BOOST_PP_TUPLE_ELEM(4, 1, data) \
+ , BOOST_PP_TUPLE_ELEM(4, 3, data) \
+ )<BOOST_PP_ENUM_PARAMS_Z(z, n, TaggedArg)>::type(*)() \
+ >(BOOST_PARAMETER_AUX_PP_NULLPTR) \
+ , ::boost::parameter::compose(BOOST_PP_ENUM_PARAMS_Z(z, n, arg)) \
+ ); \
+ }
+/**/
+
+#endif // BOOST_NO_SFINAE
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/repetition/repeat_from_to.hpp>
+
+// Emulates a variadic constructor that is enabled if and only if all its
+// arguments are tagged arguments. The enclosing class must inherit from the
+// specified base class, which in turn must implement a constructor that takes
+// in the argument pack that this one passes on.
+#define BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR(class_, base) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PP_INC(BOOST_PARAMETER_COMPOSE_MAX_ARITY) \
+ , BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR_OVERLOAD_Z \
+ , (class_, base) \
+ )
+/**/
+
+// Emulates a variadic constructor that is enabled if and only if all its
+// arguments are tagged arguments. The specified function must be able to
+// take in the argument pack that this constructor passes on.
+#define BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR(class_, func) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PP_INC(BOOST_PARAMETER_COMPOSE_MAX_ARITY) \
+ , BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR_OVERLOAD_Z \
+ , (class_, func) \
+ )
+/**/
+
+// Emulates a variadic function that is enabled if and only if
+// all its arguments are tagged arguments.
+#define BOOST_PARAMETER_NO_SPEC_FUNCTION_OVERLOAD(name, impl, is_m, c) \
+ BOOST_PP_REPEAT_FROM_TO( \
+ 1 \
+ , BOOST_PP_INC(BOOST_PARAMETER_COMPOSE_MAX_ARITY) \
+ , BOOST_PARAMETER_NO_SPEC_FUNCTION_OVERLOAD_Z \
+ , (name, impl, is_m, c) \
+ )
+/**/
+
+#endif // BOOST_PARAMETER_HAS_PERFECT_FORWARDING
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp b/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp
new file mode 100644
index 0000000000..6bd8a62951
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/parenthesized_return_type.hpp
@@ -0,0 +1,122 @@
+// Copyright Cromwell D. Enage 2019.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_PARENTHESIZED_RETURN_TYPE_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_PARENTHESIZED_RETURN_TYPE_HPP
+
+namespace boost { namespace parameter { namespace aux {
+
+ // A metafunction that transforms void(*)(T) -> identity<T>
+ template <typename UnaryFunctionPointer>
+ struct unaryfunptr_return_type;
+}}} // namespace boost::parameter::aux
+
+#include <boost/parameter/config.hpp>
+
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+#include <boost/mp11/utility.hpp>
+#else
+#include <boost/mpl/identity.hpp>
+#endif
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Arg>
+ struct unaryfunptr_return_type<void(*)(Arg)>
+ {
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ using type = ::boost::mp11::mp_identity<Arg>;
+#else
+ typedef ::boost::mpl::identity<Arg> type;
+#endif
+ };
+
+ template <>
+ struct unaryfunptr_return_type<void(*)(void)>
+ {
+#if defined(BOOST_PARAMETER_CAN_USE_MP11)
+ using type = ::boost::mp11::mp_identity<void>;
+#else
+ typedef ::boost::mpl::identity<void> type;
+#endif
+ };
+}}} // namespace boost::parameter::aux
+
+#if !defined(BOOST_NO_SFINAE)
+#include <boost/core/enable_if.hpp>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <typename Pred, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::enable_if<Pred,Ret>)>
+ {
+ typedef ::boost::enable_if<Pred,Ret> type;
+ };
+
+ template <bool b, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::enable_if_c<b,Ret>)>
+ {
+ typedef ::boost::enable_if_c<b,Ret> type;
+ };
+
+ template <typename Pred, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::lazy_enable_if<Pred,Ret>)>
+ {
+ typedef ::boost::lazy_enable_if<Pred,Ret> type;
+ };
+
+ template <bool b, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::lazy_enable_if_c<b,Ret>)>
+ {
+ typedef ::boost::lazy_enable_if_c<b,Ret> type;
+ };
+
+ template <typename Pred, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::disable_if<Pred,Ret>)>
+ {
+ typedef ::boost::disable_if<Pred,Ret> type;
+ };
+
+ template <bool b, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::disable_if_c<b,Ret>)>
+ {
+ typedef ::boost::disable_if_c<b,Ret> type;
+ };
+
+ template <typename B, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::lazy_disable_if<B,Ret>)>
+ {
+ typedef ::boost::lazy_disable_if<B,Ret> type;
+ };
+
+ template <bool b, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::boost::lazy_disable_if_c<b,Ret>)>
+ {
+ typedef ::boost::lazy_disable_if_c<b,Ret> type;
+ };
+}}} // namespace boost::parameter::aux
+
+#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#include <type_traits>
+
+namespace boost { namespace parameter { namespace aux {
+
+ template <bool b, typename Ret>
+ struct unaryfunptr_return_type<void(*)(::std::enable_if<b,Ret>)>
+ {
+ typedef ::std::enable_if<b,Ret> type;
+ };
+}}} // namespace boost::parameter::aux
+
+#endif // BOOST_NO_CXX11_HDR_TYPE_TRAITS
+#endif // BOOST_NO_SFINAE
+
+// A macro that takes a parenthesized C++ type name (T) and transforms it
+// into an un-parenthesized type expression equivalent to identity<T>.
+#define BOOST_PARAMETER_PARENTHESIZED_RETURN_TYPE(x) \
+ ::boost::parameter::aux::unaryfunptr_return_type< void(*)x >::type
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp b/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp
new file mode 100644
index 0000000000..f3d9ed9a90
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp
@@ -0,0 +1,34 @@
+// Copyright David Abrahams 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_PARENTHESIZED_TYPE_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_PARENTHESIZED_TYPE_HPP
+
+namespace boost { namespace parameter { namespace aux {
+
+ // A metafunction that transforms void(*)(T) -> T
+ template <typename UnaryFunctionPointer>
+ struct unaryfunptr_arg_type;
+
+ template <typename Arg>
+ struct unaryfunptr_arg_type<void(*)(Arg)>
+ {
+ typedef Arg type;
+ };
+
+ template <>
+ struct unaryfunptr_arg_type<void(*)(void)>
+ {
+ typedef void type;
+ };
+}}} // namespace boost::parameter::aux
+
+// A macro that takes a parenthesized C++ type name (T) and transforms it
+// into an un-parenthesized type expression equivalent to T.
+#define BOOST_PARAMETER_PARENTHESIZED_TYPE(x) \
+ ::boost::parameter::aux::unaryfunptr_arg_type< void(*)x >::type
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/specification.hpp b/boost/parameter/aux_/preprocessor/impl/specification.hpp
new file mode 100644
index 0000000000..d2a4638a83
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/specification.hpp
@@ -0,0 +1,109 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_SPECIFICATION_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_SPECIFICATION_HPP
+
+#include <boost/parameter/optional.hpp>
+
+// Helper macros for BOOST_PARAMETER_SPECIFICATION_ELEM_R.
+#define BOOST_PARAMETER_QUALIFIED_TAG_optional(tag) \
+ optional<tag
+/**/
+
+#include <boost/parameter/required.hpp>
+
+#define BOOST_PARAMETER_QUALIFIED_TAG_required(tag) \
+ required<tag
+/**/
+
+#include <boost/parameter/deduced.hpp>
+
+#define BOOST_PARAMETER_QUALIFIED_TAG_deduced_optional(tag) \
+ optional< ::boost::parameter::deduced<tag>
+/**/
+
+#define BOOST_PARAMETER_QUALIFIED_TAG_deduced_required(tag) \
+ required< ::boost::parameter::deduced<tag>
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/argument_specs.hpp>
+#include <boost/parameter/config.hpp>
+#include <boost/preprocessor/punctuation/comma_if.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+
+#include <boost/parameter/aux_/use_default.hpp>
+
+#define BOOST_PARAMETER_SPECIFICATION_ELEM_R(r, tag_namespace, i, elem) \
+ BOOST_PP_COMMA_IF(i) ::boost::parameter::BOOST_PP_CAT( \
+ BOOST_PARAMETER_QUALIFIED_TAG_ \
+ , BOOST_PARAMETER_FN_ARG_QUALIFIER(elem) \
+ )(tag_namespace::BOOST_PARAMETER_FN_ARG_NAME(elem)) \
+ , ::boost::parameter::aux::use_default \
+ >
+/**/
+
+#else // !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+
+#include <boost/parameter/aux_/pp_impl/unwrap_predicate.hpp>
+
+// Expands to each boost::parameter::parameters<> element type.
+#define BOOST_PARAMETER_SPECIFICATION_ELEM_R(r, tag_namespace, i, elem) \
+ BOOST_PP_COMMA_IF(i) ::boost::parameter::BOOST_PP_CAT( \
+ BOOST_PARAMETER_QUALIFIED_TAG_ \
+ , BOOST_PARAMETER_FN_ARG_QUALIFIER(elem) \
+ )(tag_namespace::BOOST_PARAMETER_FN_ARG_NAME(elem)) \
+ , typename ::boost::parameter::aux::unwrap_predicate< \
+ void BOOST_PARAMETER_FN_ARG_PRED(elem) \
+ >::type \
+ >
+/**/
+
+#endif // Borland workarounds needed.
+
+#include <boost/parameter/parameters.hpp>
+#include <boost/parameter/aux_/preprocessor/impl/function_name.hpp>
+#include <boost/preprocessor/control/if.hpp>
+#include <boost/preprocessor/seq/for_each_i.hpp>
+
+// Expands to a boost::parameter::parameters<> specialization for the
+// function named base. Used by BOOST_PARAMETER_CONSTRUCTOR_AUX and
+// BOOST_PARAMETER_FUNCTION_HEAD for their respective ParameterSpec models.
+#define BOOST_PARAMETER_SPECIFICATION(tag_ns, base, split_args, is_const) \
+ template <typename BoostParameterDummy> \
+ struct BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_params_const_ \
+ , boost_param_params_ \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ ) : ::boost::parameter::parameters< \
+ BOOST_PP_SEQ_FOR_EACH_I( \
+ BOOST_PARAMETER_SPECIFICATION_ELEM_R, tag_ns, split_args \
+ ) \
+ > \
+ { \
+ }; \
+ typedef BOOST_PP_CAT( \
+ BOOST_PP_CAT( \
+ BOOST_PP_IF( \
+ is_const \
+ , boost_param_params_const_ \
+ , boost_param_params_ \
+ ) \
+ , __LINE__ \
+ ) \
+ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \
+ )<int>
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/impl/split_args.hpp b/boost/parameter/aux_/preprocessor/impl/split_args.hpp
new file mode 100644
index 0000000000..bfda33b393
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/impl/split_args.hpp
@@ -0,0 +1,71 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_SPLIT_ARGS_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_SPLIT_ARGS_HPP
+
+#include <boost/preprocessor/tuple/elem.hpp>
+
+// Accessor macros for the split_args tuple.
+#define BOOST_PARAMETER_SPLIT_ARG_REQ_COUNT(x) BOOST_PP_TUPLE_ELEM(4, 0, x)
+#define BOOST_PARAMETER_SPLIT_ARG_REQ_SEQ(x) BOOST_PP_TUPLE_ELEM(4, 1, x)
+#define BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT(x) BOOST_PP_TUPLE_ELEM(4, 2, x)
+#define BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(x) BOOST_PP_TUPLE_ELEM(4, 3, x)
+
+#include <boost/preprocessor/arithmetic/inc.hpp>
+#include <boost/preprocessor/seq/push_back.hpp>
+
+// Helper macros for BOOST_PARAMETER_FUNCTION_SPLIT_ARGS.
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARG_required(s_a, arg) \
+ ( \
+ BOOST_PP_INC(BOOST_PARAMETER_SPLIT_ARG_REQ_COUNT(s_a)) \
+ , BOOST_PP_SEQ_PUSH_BACK(BOOST_PARAMETER_SPLIT_ARG_REQ_SEQ(s_a), arg) \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT(s_a) \
+ , BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(s_a) \
+ )
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARG_deduced_required(split_args, arg) \
+ BOOST_PARAMETER_FUNCTION_SPLIT_ARG_required(split_args, arg)
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARG_optional(s_a, arg) \
+ ( \
+ BOOST_PARAMETER_SPLIT_ARG_REQ_COUNT(s_a) \
+ , BOOST_PARAMETER_SPLIT_ARG_REQ_SEQ(s_a) \
+ , BOOST_PP_INC(BOOST_PARAMETER_SPLIT_ARG_OPT_COUNT(s_a)) \
+ , BOOST_PP_SEQ_PUSH_BACK(BOOST_PARAMETER_SPLIT_ARG_OPT_SEQ(s_a), arg) \
+ )
+/**/
+
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARG_deduced_optional(split_args, arg) \
+ BOOST_PARAMETER_FUNCTION_SPLIT_ARG_optional(split_args, arg)
+/**/
+
+#include <boost/parameter/aux_/preprocessor/impl/argument_specs.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARG(s, split_args, arg) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_FUNCTION_SPLIT_ARG_ \
+ , BOOST_PARAMETER_FN_ARG_QUALIFIER(arg) \
+ )(split_args, arg)
+/**/
+
+#include <boost/preprocessor/seq/fold_left.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+
+// Expands from the flattened BOOST_PARAMETER_FUNCTION et. al. arg sequence to
+// the tuple (required_count, required_args, optional_count, optional_args).
+#define BOOST_PARAMETER_FUNCTION_SPLIT_ARGS(args) \
+ BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_PARAMETER_FUNCTION_SPLIT_ARG \
+ , (0, BOOST_PP_SEQ_NIL, 0, BOOST_PP_SEQ_NIL) \
+ , args \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp b/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp
new file mode 100644
index 0000000000..9796e336a1
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/inc_binary_seq.hpp
@@ -0,0 +1,78 @@
+// Copyright Cromwell D. Enage 2013.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_INC_BINARY_SEQ_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_INC_BINARY_SEQ_HPP
+
+#include <boost/preprocessor/seq/push_back.hpp>
+
+// This macro keeps the rest of the sequence if carry == 0.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_0(seq, element) \
+ (BOOST_PP_SEQ_PUSH_BACK(seq, element), 0)
+/**/
+
+#include <boost/preprocessor/control/iif.hpp>
+
+// This macro updates the rest of the sequence if carry == 1.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_1(seq, element) \
+ (BOOST_PP_SEQ_PUSH_BACK(seq, BOOST_PP_IIF(element, 0, 1)), element)
+/**/
+
+#include <boost/preprocessor/tuple/elem.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+// This macro maintains a tuple (seq, carry), where seq is the intermediate
+// result and carry is a flag that will unset upon finding an element == 0.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_OP(s, result_tuple, element) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_ \
+ , BOOST_PP_TUPLE_ELEM(2, 1, result_tuple) \
+ )(BOOST_PP_TUPLE_ELEM(2, 0, result_tuple), element)
+/**/
+
+// This macro keeps the sequence at its original length if carry == 0.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_IMPL_0(seq) seq
+/**/
+
+// This macro appends a zero to seq if carry == 1.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_IMPL_1(seq) \
+ BOOST_PP_SEQ_PUSH_BACK(seq, 0)
+/**/
+
+// This macro takes in the tuple (seq, carry), with carry indicating whether
+// or not seq originally contained all 1s. If so, then seq now contains all
+// 0s, and this macro pushes an extra 0 before expanding to the new sequence.
+// Otherwise, this macro expands to seq as is.
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_IMPL(seq_and_carry) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_IMPL_ \
+ , BOOST_PP_TUPLE_ELEM(2, 1, seq_and_carry) \
+ )(BOOST_PP_TUPLE_ELEM(2, 0, seq_and_carry))
+/**/
+
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/fold_left.hpp>
+
+// This macro treats the specified sequence of 1s and 0s like a binary number
+// in reverse and expands to a sequence representing the next value up.
+// However, if the input sequence contains all 1s, then the output sequence
+// will contain one more element but all 0s.
+//
+// Examples:
+// seq = (1)(0)(1)(0) --> return (0)(1)(1)(0)
+// seq = (1)(1)(1)(0) --> return (0)(0)(0)(1)
+// seq = (1)(1)(1)(1) --> return (0)(0)(0)(0)(0)
+#define BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ(seq) \
+ BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_IMPL( \
+ BOOST_PP_SEQ_FOLD_LEFT( \
+ BOOST_PARAMETER_AUX_PP_INC_BINARY_SEQ_OP \
+ , (BOOST_PP_SEQ_NIL, 1) \
+ , seq \
+ ) \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/is_binary.hpp b/boost/parameter/aux_/preprocessor/is_binary.hpp
new file mode 100644
index 0000000000..a8f3c67afb
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/is_binary.hpp
@@ -0,0 +1,31 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IS_BINARY_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IS_BINARY_HPP
+
+#include <boost/config.hpp>
+#include <boost/config/workaround.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+// From Paul Mensonides
+#include <boost/preprocessor/punctuation/comma.hpp>
+#include <boost/preprocessor/detail/split.hpp>
+#define BOOST_PARAMETER_IS_BINARY(x) \
+ BOOST_PP_SPLIT(1, BOOST_PARAMETER_IS_BINARY_C x BOOST_PP_COMMA() 0)
+/**/
+#include <boost/preprocessor/punctuation/paren.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+#define BOOST_PARAMETER_IS_BINARY_C(x,y) \
+ ~, 1 BOOST_PP_RPAREN() \
+ BOOST_PP_TUPLE_EAT(2) BOOST_PP_LPAREN() ~
+/**/
+#else
+#include <boost/preprocessor/detail/is_binary.hpp>
+#define BOOST_PARAMETER_IS_BINARY(x) BOOST_PP_IS_BINARY(x)
+#endif
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/is_nullary.hpp b/boost/parameter/aux_/preprocessor/is_nullary.hpp
new file mode 100644
index 0000000000..5d8e59c538
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/is_nullary.hpp
@@ -0,0 +1,32 @@
+// Copyright Daniel Wallin 2006.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IS_NULLARY_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_IS_NULLARY_HPP
+
+#include <boost/config.hpp>
+#include <boost/config/workaround.hpp>
+
+#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+// From Paul Mensonides
+#include <boost/preprocessor/punctuation/comma.hpp>
+#include <boost/preprocessor/detail/split.hpp>
+#define BOOST_PARAMETER_IS_NULLARY(x) \
+ BOOST_PP_SPLIT(1, BOOST_PARAMETER_IS_NULLARY_C x BOOST_PP_COMMA() 0)
+/**/
+#include <boost/preprocessor/punctuation/paren.hpp>
+#include <boost/preprocessor/tuple/eat.hpp>
+#define BOOST_PARAMETER_IS_NULLARY_C() \
+ ~, 1 BOOST_PP_RPAREN() \
+ BOOST_PP_TUPLE_EAT(2) BOOST_PP_LPAREN() ~
+/**/
+#else
+#include <boost/preprocessor/detail/is_nullary.hpp>
+#define BOOST_PARAMETER_IS_NULLARY(x) BOOST_PP_IS_NULLARY(x)
+/**/
+#endif
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp b/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp
new file mode 100644
index 0000000000..9ade7adcd1
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp
@@ -0,0 +1,165 @@
+// Copyright David Abrahams, Daniel Wallin 2003.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// No include guard. This file is intended for multiple inclusion.
+
+#define BOOST_PARAMETER_right_angle(z, n, _) >
+/**/
+
+#define BOOST_PARAMETER_satisfies_end(z, n, false_t) ,false_t>
+/**/
+
+#include <boost/preprocessor/seq/elem.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+// Generates:
+//
+// make<
+// parameter_spec##0, argument_type##0
+// , make<
+// parameter_spec##1, argument_type##1
+// , ... boost::mpl::identity<boost::parameter::aux::empty_arg_list>
+// ...>
+// >
+#define BOOST_PARAMETER_make_arg_list(z, n, names) \
+ BOOST_PP_SEQ_ELEM(0, names)< \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(1, names), n), \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(2, names), n),
+/**/
+
+#include <boost/parameter/aux_/void.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/preprocessor/repetition/repeat.hpp>
+
+#define BOOST_PARAMETER_build_arg_list(n, make, param_spec, arg_type) \
+ BOOST_PP_REPEAT( \
+ n, BOOST_PARAMETER_make_arg_list, (make)(param_spec)(arg_type) \
+ ) \
+ ::boost::mpl::identity< ::boost::parameter::void_> \
+ BOOST_PP_REPEAT(n, BOOST_PARAMETER_right_angle, _)
+/**/
+
+#define BOOST_PARAMETER_make_deduced_list(z, n, names) \
+ BOOST_PP_SEQ_ELEM(0, names)<BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(1, names), n),
+/**/
+
+#define BOOST_PARAMETER_build_deduced_list(n, make, parameter_spec) \
+ BOOST_PP_REPEAT( \
+ n, BOOST_PARAMETER_make_deduced_list, (make)(parameter_spec) \
+ ) \
+ ::boost::mpl::identity< ::boost::parameter::void_> \
+ BOOST_PP_REPEAT(n, BOOST_PARAMETER_right_angle, _)
+/**/
+
+#define BOOST_PARAMETER_forward_typedef(z, n, names) \
+ typedef BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(0, names), n) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ELEM(1, names), n);
+/**/
+
+#define BOOST_PARAMETER_template_args(z, n, prefix) \
+ typename BOOST_PP_CAT(prefix, n) = ::boost::parameter::void_
+/**/
+
+#include <boost/mpl/pair.hpp>
+
+#if (0 < BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY)
+
+#include <boost/parameter/aux_/pack/item.hpp>
+#include <boost/preprocessor/control/iif.hpp>
+
+#define BOOST_PARAMETER_make_arg_items_R(r, prefix, i, elem) \
+ ::boost::parameter::aux::item<BOOST_PP_CAT(prefix, i), \
+ BOOST_PP_CAT(A, i) BOOST_PP_IIF(elem, &, const&),
+/**/
+
+#include <boost/parameter/aux_/pack/make_arg_list.hpp>
+#include <boost/parameter/aux_/pack/tag_keyword_arg.hpp>
+#include <boost/preprocessor/seq/for_each_i.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+
+#define BOOST_PARAMETER_function_call_arg_list_R(r, seq) \
+ ::boost::parameter::aux::make_arg_list< \
+ BOOST_PP_SEQ_FOR_EACH_I_R( \
+ r, BOOST_PARAMETER_make_arg_items_R, PS, seq \
+ ) \
+ ::boost::parameter::void_ \
+ BOOST_PP_REPEAT( \
+ BOOST_PP_SEQ_SIZE(seq), BOOST_PARAMETER_right_angle, _ \
+ ) \
+ , deduced_list \
+ , ::boost::parameter::aux::tag_keyword_arg \
+ >
+/**/
+
+#include <boost/preprocessor/arithmetic/sub.hpp>
+
+#define BOOST_PARAMETER_function_call_arg_pack_init(z, n, limit) \
+ BOOST_PP_CAT(a, BOOST_PP_SUB(limit, n))
+/**/
+
+#include <boost/parameter/aux_/preprocessor/binary_seq_to_args.hpp>
+#include <boost/preprocessor/arithmetic/dec.hpp>
+#include <boost/preprocessor/facilities/intercept.hpp>
+#include <boost/preprocessor/repetition/enum.hpp>
+#include <boost/preprocessor/repetition/enum_params.hpp>
+#include <boost/preprocessor/repetition/enum_binary_params.hpp>
+#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
+#include <boost/preprocessor/seq/seq.hpp>
+
+#define BOOST_PARAMETER_function_call_op_overload_R(r, seq) \
+ template < \
+ BOOST_PP_ENUM_PARAMS( \
+ BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)) \
+ , typename A \
+ ) \
+ > \
+ inline typename ::boost::mpl::first< \
+ typename BOOST_PARAMETER_function_call_arg_list_R( \
+ r, BOOST_PP_SEQ_TAIL(seq) \
+ )::type \
+ >::type \
+ operator()( \
+ BOOST_PARAMETER_AUX_PP_BINARY_SEQ_TO_ARGS( \
+ BOOST_PP_SEQ_TAIL(seq), (A)(a) \
+ ) \
+ ) const \
+ { \
+ typedef typename BOOST_PARAMETER_function_call_arg_list_R( \
+ r, BOOST_PP_SEQ_TAIL(seq) \
+ )::type result; \
+ typedef typename ::boost::mpl::first<result>::type result_type; \
+ typedef typename ::boost::mpl::second<result>::type error; \
+ error(); \
+ return result_type( \
+ BOOST_PP_ENUM( \
+ BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)) \
+ , BOOST_PARAMETER_function_call_arg_pack_init \
+ , BOOST_PP_DEC(BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq))) \
+ ) \
+ BOOST_PP_ENUM_TRAILING_PARAMS( \
+ BOOST_PP_SUB( \
+ BOOST_PARAMETER_COMPOSE_MAX_ARITY \
+ , BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(seq)) \
+ ) \
+ , ::boost::parameter::aux::void_reference() BOOST_PP_INTERCEPT \
+ ) \
+ ); \
+ }
+/**/
+
+#endif // exponential overloads
+
+#include <boost/parameter/aux_/pack/satisfies.hpp>
+#include <boost/mpl/eval_if.hpp>
+
+#define BOOST_PARAMETER_satisfies_begin(z, n, prefix) \
+ ::boost::mpl::eval_if< \
+ ::boost::parameter::aux::satisfies_requirements_of< \
+ typename ::boost::mpl::first<ArgumentPackAndError>::type \
+ , BOOST_PP_CAT(prefix, n) \
+ >,
+/**/
+
diff --git a/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp b/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp
new file mode 100644
index 0000000000..71cc596d2c
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp
@@ -0,0 +1,24 @@
+// Copyright David Abrahams, Daniel Wallin 2003.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// No include guard. This file is intended for multiple inclusion.
+
+#undef BOOST_PARAMETER_satisfies_begin
+#if (0 < BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY)
+#undef BOOST_PARAMETER_function_call_op_overload_R
+#undef BOOST_PARAMETER_function_call_arg_pack_init
+#undef BOOST_PARAMETER_function_call_arg_list_R
+#undef BOOST_PARAMETER_make_arg_items_R
+#endif
+#undef BOOST_PARAMETER_template_args
+#undef BOOST_PARAMETER_forward_typedef
+#undef BOOST_PARAMETER_build_deduced_list
+#undef BOOST_PARAMETER_make_deduced_list
+#undef BOOST_PARAMETER_build_arg_list
+#undef BOOST_PARAMETER_make_arg_list
+#undef BOOST_PARAMETER_satisfies_end
+#undef BOOST_PARAMETER_right_angle
+
diff --git a/boost/parameter/aux_/preprocessor/nullptr.hpp b/boost/parameter/aux_/preprocessor/nullptr.hpp
new file mode 100644
index 0000000000..85ab6cc2da
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/nullptr.hpp
@@ -0,0 +1,18 @@
+// Copyright Cromwell D. Enage 2019.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_NULLPTR_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_NULLPTR_HPP
+
+#include <boost/config.hpp>
+
+#if defined(BOOST_NO_CXX11_NULLPTR)
+#define BOOST_PARAMETER_AUX_PP_NULLPTR 0
+#else
+#define BOOST_PARAMETER_AUX_PP_NULLPTR nullptr
+#endif
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/overloads.hpp b/boost/parameter/aux_/preprocessor/overloads.hpp
new file mode 100644
index 0000000000..4f2685616d
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/overloads.hpp
@@ -0,0 +1,92 @@
+// Copyright David Abrahams, Daniel Wallin 2003.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+// This file generates overloads in this format:
+//
+// template <typename A0, typename A1>
+// typename ::boost::mpl::apply_wrap1<
+// ::boost::parameter::aux::make_arg_list<
+// PS0,A0
+// , ::boost::parameter::aux::make_arg_list<
+// PS1,A1
+// , ::boost::mpl::identity<
+// ::boost::parameter::aux::empty_arg_list
+// >
+// >
+// >
+// , unnamed_list
+// >::type
+// operator()(A0 const& a0, A1 const& a1) const
+// {
+// typedef typename ::boost::mpl::apply_wrap1<
+// ::boost::parameter::aux::make_arg_list<
+// PS0,A0
+// , ::boost::parameter::aux::make_arg_list<
+// PS1,A1
+// , ::boost::mpl::identity<
+// ::boost::parameter::aux::empty_arg_list
+// >
+// >
+// >
+// >::type arg_tuple;
+//
+// return arg_tuple(
+// a0
+// , a1
+// , ::boost::parameter::aux::void_()
+// ...
+// );
+// }
+//
+
+#if !defined(BOOST_PP_IS_ITERATING)
+# error Boost.Parameters - do not include this file!
+#endif
+
+#define N BOOST_PP_ITERATION()
+
+#define BOOST_PARAMETER_open_list(z, n, text) \
+ ::boost::parameter::aux::item< \
+ BOOST_PP_CAT(PS, n), BOOST_PP_CAT(A, n)
+
+#define BOOST_PARAMETER_close_list(z, n, text) >
+
+#define BOOST_PARAMETER_arg_list(n) \
+ ::boost::parameter::aux::make_arg_list< \
+ BOOST_PP_ENUM(N, BOOST_PARAMETER_open_list, _) \
+ , ::boost::parameter::void_ \
+ BOOST_PP_REPEAT(N, BOOST_PARAMETER_close_list, _) \
+ , deduced_list \
+ , ::boost::parameter::aux::tag_keyword_arg \
+ >
+
+#define BOOST_PARAMETER_arg_pack_init(z, n, limit) \
+ BOOST_PP_CAT(a, BOOST_PP_SUB(limit, n))
+
+template <BOOST_PP_ENUM_PARAMS(N, typename A)>
+typename ::boost::mpl::first<
+ typename BOOST_PARAMETER_arg_list(N)::type
+>::type
+ operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, & a)) const
+{
+ typedef typename BOOST_PARAMETER_arg_list(N)::type result;
+ typedef typename ::boost::mpl::first<result>::type result_type;
+ typedef typename ::boost::mpl::second<result>::type error;
+ error();
+
+ return result_type(
+ BOOST_PP_ENUM(N, BOOST_PARAMETER_arg_pack_init, BOOST_PP_DEC(N))
+ BOOST_PP_ENUM_TRAILING_PARAMS(
+ BOOST_PP_SUB(BOOST_PARAMETER_COMPOSE_MAX_ARITY, N)
+ , ::boost::parameter::aux::void_reference() BOOST_PP_INTERCEPT
+ )
+ );
+}
+
+#undef BOOST_PARAMETER_arg_list
+#undef BOOST_PARAMETER_close_list
+#undef BOOST_PARAMETER_open_list
+#undef N
+
diff --git a/boost/parameter/aux_/preprocessor/qualifier.hpp b/boost/parameter/aux_/preprocessor/qualifier.hpp
new file mode 100644
index 0000000000..b809503b44
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/qualifier.hpp
@@ -0,0 +1,88 @@
+// Copyright Daniel Wallin 2006.
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_QUALIFIER_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_QUALIFIER_HPP
+
+#define BOOST_PARAMETER_QUALIFIER_EAT_in(x)
+#define BOOST_PARAMETER_QUALIFIER_EAT_out(x)
+#define BOOST_PARAMETER_QUALIFIER_EAT_in_out(x)
+#define BOOST_PARAMETER_QUALIFIER_EAT_consume(x)
+#define BOOST_PARAMETER_QUALIFIER_EAT_move_from(x)
+#define BOOST_PARAMETER_QUALIFIER_EAT_forward(x)
+
+#define BOOST_PARAMETER_GET_QUALIFIER_in(x) in_reference
+#define BOOST_PARAMETER_GET_QUALIFIER_out(x) out_reference
+#define BOOST_PARAMETER_GET_QUALIFIER_in_out(x) in_out_reference
+#define BOOST_PARAMETER_GET_QUALIFIER_consume(x) consume_reference
+#define BOOST_PARAMETER_GET_QUALIFIER_move_from(x) move_from_reference
+#define BOOST_PARAMETER_GET_QUALIFIER_forward(x) forward_reference
+
+#define BOOST_PARAMETER_STRIP_QUALIFIER_in(x) x
+#define BOOST_PARAMETER_STRIP_QUALIFIER_out(x) x
+#define BOOST_PARAMETER_STRIP_QUALIFIER_in_out(x) x
+#define BOOST_PARAMETER_STRIP_QUALIFIER_consume(x) x
+#define BOOST_PARAMETER_STRIP_QUALIFIER_move_from(x) x
+#define BOOST_PARAMETER_STRIP_QUALIFIER_forward(x) x
+
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_GET_QUALIFIER_GET(x) \
+ BOOST_PP_CAT(BOOST_PARAMETER_GET_QUALIFIER_, x)
+/**/
+
+#define BOOST_PARAMETER_GET_UNQUALIFIED(x) \
+ BOOST_PP_CAT(BOOST_PARAMETER_STRIP_QUALIFIER_, x)
+/**/
+
+#include <boost/preprocessor/facilities/is_empty.hpp>
+
+// Expands to 1 if x is either "in(k)", "out(k)", "in_out(k)", "consume(k)",
+// "move_from(k)", or "forward(k)"; expands to 0 otherwise.
+#define BOOST_PARAMETER_IS_QUALIFIER(x) \
+ BOOST_PP_IS_EMPTY(BOOST_PP_CAT(BOOST_PARAMETER_QUALIFIER_EAT_, x))
+/**/
+
+#include <boost/preprocessor/control/iif.hpp>
+
+// Expands to the qualifier of x,
+// where x is either a keyword qualifier or a keyword.
+//
+// k => forward_reference
+// in(k) => in_reference
+// out(k) => out_reference
+// in_out(k) => in_out_reference
+// forward(k) => forward_reference
+// consume(k) => consume_reference
+// move_from(k) => move_from_reference
+#define BOOST_PARAMETER_GET_QUALIFIER(x) \
+ BOOST_PP_IIF( \
+ BOOST_PARAMETER_IS_QUALIFIER(x) \
+ , BOOST_PARAMETER_GET_QUALIFIER_GET(x) \
+ , forward_reference \
+ )
+/**/
+
+// Expands to the unqualified version of x,
+// where x is either a keyword qualifier or a keyword.
+//
+// k => k
+// in(k) => k
+// out(k) => k
+// in_out(k) => k
+// forward(k) => k
+// consume(k) => k
+// move_from(k) => k
+#define BOOST_PARAMETER_UNQUALIFIED(x) \
+ BOOST_PP_IIF( \
+ BOOST_PARAMETER_IS_QUALIFIER(x) \
+ , BOOST_PARAMETER_GET_UNQUALIFIED(x) \
+ , x \
+ )
+/**/
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/seq_enum.hpp b/boost/parameter/aux_/preprocessor/seq_enum.hpp
new file mode 100644
index 0000000000..1455105d05
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/seq_enum.hpp
@@ -0,0 +1,26 @@
+// Copyright David Abrahams 2005.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_SEQ_ENUM_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_SEQ_ENUM_HPP
+
+#include <boost/preprocessor/seq/enum.hpp>
+#include <boost/config.hpp>
+#include <boost/config/workaround.hpp>
+
+#if BOOST_WORKAROUND(__MWERKS__, <= 0x3003)
+#include <boost/preprocessor/seq/size.hpp>
+// Temporary version of BOOST_PP_SEQ_ENUM
+// until Paul M. integrates the workaround.
+#define BOOST_PARAMETER_SEQ_ENUM_I(size, seq) \
+ BOOST_PP_CAT(BOOST_PP_SEQ_ENUM_, size) seq
+#define BOOST_PARAMETER_SEQ_ENUM(seq) \
+ BOOST_PARAMETER_SEQ_ENUM_I(BOOST_PP_SEQ_SIZE(seq), seq)
+#else
+#define BOOST_PARAMETER_SEQ_ENUM(seq) BOOST_PP_SEQ_ENUM(seq)
+#endif
+
+#endif // include guard
+
diff --git a/boost/parameter/aux_/preprocessor/seq_merge.hpp b/boost/parameter/aux_/preprocessor/seq_merge.hpp
new file mode 100644
index 0000000000..065375388e
--- /dev/null
+++ b/boost/parameter/aux_/preprocessor/seq_merge.hpp
@@ -0,0 +1,1807 @@
+// Copyright Cromwell D. Enage 2017.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_SEQ_MERGE_HPP
+#define BOOST_PARAMETER_AUX_PREPROCESSOR_SEQ_MERGE_HPP
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_0(seq0, seq1) seq1
+/**/
+
+#include <boost/preprocessor/seq/seq.hpp>
+#include <boost/preprocessor/seq/push_front.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_1(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT(seq1, BOOST_PP_SEQ_HEAD(seq0))
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_2(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_1(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_3(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_2(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_4(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_3(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_5(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_4(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_6(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_5(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_7(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_6(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_8(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_7(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_9(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_8(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_10(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_9(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_11(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_10(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_12(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_11(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_13(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_12(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_14(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_13(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_15(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_14(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_16(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_15(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_17(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_16(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_18(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_17(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_19(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_18(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_20(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_19(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_21(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_20(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_22(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_21(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_23(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_22(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_24(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_23(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_25(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_24(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_26(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_25(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_27(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_26(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_28(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_27(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_29(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_28(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_30(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_29(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_31(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_30(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_32(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_31(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_33(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_32(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_34(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_33(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_35(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_34(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_36(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_35(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_37(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_36(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_38(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_37(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_39(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_38(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_40(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_39(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_41(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_40(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_42(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_41(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_43(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_42(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_44(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_43(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_45(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_44(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_46(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_45(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_47(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_46(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_48(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_47(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_49(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_48(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_50(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_49(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_51(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_50(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_52(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_51(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_53(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_52(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_54(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_53(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_55(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_54(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_56(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_55(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_57(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_56(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_58(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_57(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_59(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_58(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_60(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_59(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_61(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_60(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_62(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_61(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_63(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_62(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_64(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_63(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_65(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_64(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_66(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_65(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_67(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_66(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_68(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_67(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_69(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_68(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_70(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_69(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_71(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_70(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_72(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_71(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_73(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_72(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_74(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_73(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_75(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_74(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_76(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_75(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_77(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_76(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_78(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_77(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_79(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_78(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_80(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_79(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_81(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_80(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_82(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_81(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_83(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_82(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_84(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_83(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_85(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_84(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_86(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_85(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_87(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_86(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_88(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_87(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_89(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_88(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_90(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_89(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_91(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_90(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_92(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_91(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_93(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_92(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_94(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_93(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_95(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_94(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_96(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_95(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_97(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_96(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_98(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_97(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_99(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_98(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_100(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_99(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_101(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_100(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_102(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_101(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_103(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_102(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_104(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_103(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_105(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_104(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_106(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_105(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_107(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_106(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_108(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_107(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_109(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_108(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_110(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_109(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_111(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_110(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_112(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_111(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_113(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_112(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_114(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_113(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_115(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_114(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_116(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_115(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_117(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_116(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_118(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_117(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_119(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_118(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_120(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_119(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_121(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_120(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_122(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_121(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_123(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_122(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_124(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_123(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_125(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_124(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_126(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_125(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_127(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_126(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_128(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_127(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_129(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_128(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_130(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_129(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_131(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_130(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_132(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_131(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_133(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_132(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_134(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_133(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_135(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_134(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_136(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_135(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_137(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_136(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_138(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_137(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_139(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_138(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_140(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_139(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_141(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_140(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_142(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_141(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_143(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_142(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_144(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_143(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_145(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_144(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_146(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_145(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_147(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_146(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_148(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_147(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_149(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_148(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_150(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_149(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_151(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_150(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_152(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_151(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_153(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_152(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_154(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_153(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_155(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_154(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_156(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_155(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_157(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_156(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_158(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_157(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_159(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_158(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_160(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_159(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_161(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_160(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_162(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_161(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_163(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_162(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_164(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_163(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_165(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_164(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_166(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_165(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_167(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_166(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_168(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_167(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_169(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_168(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_170(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_169(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_171(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_170(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_172(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_171(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_173(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_172(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_174(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_173(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_175(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_174(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_176(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_175(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_177(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_176(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_178(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_177(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_179(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_178(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_180(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_179(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_181(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_180(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_182(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_181(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_183(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_182(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_184(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_183(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_185(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_184(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_186(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_185(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_187(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_186(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_188(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_187(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_189(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_188(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_190(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_189(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_191(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_190(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_192(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_191(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_193(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_192(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_194(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_193(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_195(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_194(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_196(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_195(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_197(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_196(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_198(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_197(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_199(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_198(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_200(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_199(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_201(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_200(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_202(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_201(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_203(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_202(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_204(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_203(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_205(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_204(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_206(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_205(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_207(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_206(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_208(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_207(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_209(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_208(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_210(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_209(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_211(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_210(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_212(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_211(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_213(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_212(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_214(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_213(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_215(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_214(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_216(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_215(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_217(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_216(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_218(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_217(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_219(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_218(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_220(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_219(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_221(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_220(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_222(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_221(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_223(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_222(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_224(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_223(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_225(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_224(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_226(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_225(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_227(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_226(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_228(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_227(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_229(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_228(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_230(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_229(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_231(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_230(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_232(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_231(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_233(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_232(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_234(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_233(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_235(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_234(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_236(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_235(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_237(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_236(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_238(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_237(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_239(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_238(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_240(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_239(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_241(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_240(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_242(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_241(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_243(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_242(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_244(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_243(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_245(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_244(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_246(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_245(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_247(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_246(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_248(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_247(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_249(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_248(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_250(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_249(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_251(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_250(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_252(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_251(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_253(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_252(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_254(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_253(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE_255(seq0, seq1) \
+ BOOST_PP_SEQ_PUSH_FRONT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_254(BOOST_PP_SEQ_TAIL(seq0), seq1) \
+ , BOOST_PP_SEQ_HEAD(seq0) \
+ )
+/**/
+
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/cat.hpp>
+
+#define BOOST_PARAMETER_AUX_PP_SEQ_MERGE(seq0, seq1) \
+ BOOST_PP_CAT( \
+ BOOST_PARAMETER_AUX_PP_SEQ_MERGE_, BOOST_PP_SEQ_SIZE(seq0) \
+ )(seq0, seq1)
+/**/
+
+#endif // include guard
+