|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r83296 - in sandbox/contract/boost: . contract/aux_ contract/aux_/call contract/aux_/call/impl_ contract/aux_/macro contract/aux_/macro/code_ contract/aux_/macro/code_/named_params_ contract/aux_/preprocessor contract/aux_/preprocessor/iteration contract/aux_/subcontract contract/detail/preprocessor/array
From: lorcaminiti_at_[hidden]
Date: 2013-03-04 16:57:53
Author: lcaminiti
Date: 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
New Revision: 83296
URL: http://svn.boost.org/trac/boost/changeset/83296
Log:
Changing to boost/BOOST symbols.
Text files modified:
sandbox/contract/boost/contract.hpp | 32
sandbox/contract/boost/contract/aux_/arg_const.hpp | 76
sandbox/contract/boost/contract/aux_/bind_old.hpp | 218 +-
sandbox/contract/boost/contract/aux_/call/constructor_entry.hpp | 43
sandbox/contract/boost/contract/aux_/call/constructor_exit.hpp | 38
sandbox/contract/boost/contract/aux_/call/destructor.hpp | 32
sandbox/contract/boost/contract/aux_/call/free_function.hpp | 38
sandbox/contract/boost/contract/aux_/call/globals.hpp | 17
sandbox/contract/boost/contract/aux_/call/impl_/define.hpp | 84
sandbox/contract/boost/contract/aux_/call/impl_/function.hpp | 523 ++--
sandbox/contract/boost/contract/aux_/call/impl_/include.hpp | 14
sandbox/contract/boost/contract/aux_/call/impl_/undef.hpp | 24
sandbox/contract/boost/contract/aux_/call/nonstatic_member_function.hpp | 38
sandbox/contract/boost/contract/aux_/call/static_member_function.hpp | 38
sandbox/contract/boost/contract/aux_/concept_assert.hpp | 14
sandbox/contract/boost/contract/aux_/config.hpp | 72
sandbox/contract/boost/contract/aux_/constructor_inits_eval.hpp | 8
sandbox/contract/boost/contract/aux_/constructor_try_block_guard.hpp | 16
sandbox/contract/boost/contract/aux_/copy_result.hpp | 75
sandbox/contract/boost/contract/aux_/debug.hpp | 26
sandbox/contract/boost/contract/aux_/has_xxx_member_function.hpp | 33
sandbox/contract/boost/contract/aux_/identity_equal.hpp | 11
sandbox/contract/boost/contract/aux_/loop_variant.hpp | 16
sandbox/contract/boost/contract/aux_/macro/block_invariant.hpp | 36
sandbox/contract/boost/contract/aux_/macro/body.hpp | 50
sandbox/contract/boost/contract/aux_/macro/class.hpp | 248 +-
sandbox/contract/boost/contract/aux_/macro/class_invariant.hpp | 36
sandbox/contract/boost/contract/aux_/macro/code_/assert.hpp | 201
sandbox/contract/boost/contract/aux_/macro/code_/assertion_func.hpp | 96
sandbox/contract/boost/contract/aux_/macro/code_/base.hpp | 37
sandbox/contract/boost/contract/aux_/macro/code_/body.hpp | 18
sandbox/contract/boost/contract/aux_/macro/code_/class.hpp | 8
sandbox/contract/boost/contract/aux_/macro/code_/class_concept.hpp | 47
sandbox/contract/boost/contract/aux_/macro/code_/class_final.hpp | 61
sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const.hpp | 112
sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp | 134
sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_static.hpp | 103
sandbox/contract/boost/contract/aux_/macro/code_/const_expr.hpp | 63
sandbox/contract/boost/contract/aux_/macro/code_/constructor_entry.hpp | 70
sandbox/contract/boost/contract/aux_/macro/code_/exception_spec.hpp | 18
sandbox/contract/boost/contract/aux_/macro/code_/final.hpp | 86
sandbox/contract/boost/contract/aux_/macro/code_/func.hpp | 591 ++--
sandbox/contract/boost/contract/aux_/macro/code_/loop_variant.hpp | 89
sandbox/contract/boost/contract/aux_/macro/code_/name.hpp | 40
sandbox/contract/boost/contract/aux_/macro/code_/named_params_/boost_.hpp | 110
sandbox/contract/boost/contract/aux_/macro/code_/named_params_/constructor.hpp | 320 +-
sandbox/contract/boost/contract/aux_/macro/code_/named_params_/contracted.hpp | 135
sandbox/contract/boost/contract/aux_/macro/code_/named_params_/function.hpp | 90
sandbox/contract/boost/contract/aux_/macro/code_/named_params_class_template.hpp | 119
sandbox/contract/boost/contract/aux_/macro/code_/named_params_func.hpp | 51
sandbox/contract/boost/contract/aux_/macro/code_/new.hpp | 35
sandbox/contract/boost/contract/aux_/macro/code_/oldof.hpp | 295 +-
sandbox/contract/boost/contract/aux_/macro/code_/oldof_type.hpp | 58
sandbox/contract/boost/contract/aux_/macro/code_/override.hpp | 39
sandbox/contract/boost/contract/aux_/macro/code_/postcondition.hpp | 284 +-
sandbox/contract/boost/contract/aux_/macro/code_/precondition.hpp | 238 +-
sandbox/contract/boost/contract/aux_/macro/code_/result_type.hpp | 28
sandbox/contract/boost/contract/aux_/macro/code_/signature.hpp | 89
sandbox/contract/boost/contract/aux_/macro/code_/subcontract.hpp | 59
sandbox/contract/boost/contract/aux_/macro/code_/template.hpp | 125
sandbox/contract/boost/contract/aux_/macro/code_/typename.hpp | 46
sandbox/contract/boost/contract/aux_/macro/code_/virtual.hpp | 72
sandbox/contract/boost/contract/aux_/macro/function.hpp | 216 +
sandbox/contract/boost/contract/aux_/macro/loop_variant.hpp | 18
sandbox/contract/boost/contract/aux_/macro/parameter.hpp | 14
sandbox/contract/boost/contract/aux_/mpl_assert.hpp | 10
sandbox/contract/boost/contract/aux_/named_params.hpp | 20
sandbox/contract/boost/contract/aux_/oldof.hpp | 20
sandbox/contract/boost/contract/aux_/preprocessor/func_kind.hpp | 63
sandbox/contract/boost/contract/aux_/preprocessor/iteration/arity_1.hpp | 4
sandbox/contract/boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp | 36
sandbox/contract/boost/contract/aux_/preprocessor/iteration/params.hpp | 12
sandbox/contract/boost/contract/aux_/result_const.hpp | 10
sandbox/contract/boost/contract/aux_/signature_traits.hpp | 239 +-
sandbox/contract/boost/contract/aux_/subcontract/class_invariant.hpp | 55
sandbox/contract/boost/contract/aux_/subcontract/from.hpp | 14
sandbox/contract/boost/contract/aux_/subcontract/has_class_invariant.hpp | 30
sandbox/contract/boost/contract/aux_/subcontract/oldof.hpp | 58
sandbox/contract/boost/contract/aux_/subcontract/postcondition.hpp | 38
sandbox/contract/boost/contract/aux_/subcontract/precondition.hpp | 104
sandbox/contract/boost/contract/aux_/subcontract/static_class_invariant.hpp | 41
sandbox/contract/boost/contract/aux_/symbol.hpp | 16
sandbox/contract/boost/contract/aux_/thread_variable.hpp | 56
sandbox/contract/boost/contract/aux_/uninitialized.hpp | 18
sandbox/contract/boost/contract/detail/preprocessor/array/first_n.hpp | 4185 +++++++++++++++++++--------------------
85 files changed, 5748 insertions(+), 5352 deletions(-)
Modified: sandbox/contract/boost/contract.hpp
==============================================================================
--- sandbox/contract/boost/contract.hpp (original)
+++ sandbox/contract/boost/contract.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,29 +5,29 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_HPP_
-#define CONTRACT_HPP_
+#ifndef BOOST_CONTRACT_HPP_
+#define BOOST_CONTRACT_HPP_
-#include <contract/limits.hpp>
-#include <contract/config.hpp>
+#include <boost/contract/limits.hpp>
+#include <boost/contract/config.hpp>
-#include <contract/broken.hpp>
+#include <boost/contract/broken.hpp>
-#include <contract/oldof.hpp>
-#include <contract/copy.hpp>
+#include <boost/contract/oldof.hpp>
+#include <boost/contract/copy.hpp>
-#include <contract/class.hpp>
-#include <contract/class_invariant.hpp>
+#include <boost/contract/class.hpp>
+#include <boost/contract/class_invariant.hpp>
-#include <contract/constructor.hpp>
-#include <contract/destructor.hpp>
-#include <contract/function.hpp>
-#include <contract/body.hpp>
+#include <boost/contract/constructor.hpp>
+#include <boost/contract/destructor.hpp>
+#include <boost/contract/function.hpp>
+#include <boost/contract/body.hpp>
-#include <contract/block_invariant.hpp>
-#include <contract/loop_variant.hpp>
+#include <boost/contract/block_invariant.hpp>
+#include <boost/contract/loop_variant.hpp>
-#include <contract/parameter.hpp>
+#include <boost/contract/parameter.hpp>
// NOTE: This header allows to use the alternative operator spelling `not`, etc
// so user code can write assertions starting with alphanumeric symbols as
Modified: sandbox/contract/boost/contract/aux_/arg_const.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/arg_const.hpp (original)
+++ sandbox/contract/boost/contract/aux_/arg_const.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,10 +5,10 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_ARG_CONST_HPP_
-#define CONTRACT_AUX_ARG_CONST_HPP_
+#ifndef BOOST_CONTRACT_AUX_ARG_CONST_HPP_
+#define BOOST_CONTRACT_AUX_ARG_CONST_HPP_
-#include <contract/config.hpp>
+#include <boost/contract/config.hpp>
#include <boost/type_traits/add_const.hpp>
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/add_pointer.hpp>
@@ -21,7 +21,7 @@
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// To ensure CONSTANT-CORRECTNESS:
// 1) Arguments are usually passed by const& -- this makes sure that
@@ -75,7 +75,7 @@
// Specializations for Functions //
-#define CONTRACT_AUX_ARG_CONST_func_A(z, n, typename01) \
+#define BOOST_CONTRACT_AUX_ARG_CONST_func_A(z, n, typename01) \
BOOST_PP_EXPR_IIF(typename01, typename) BOOST_PP_CAT(A, n)
// Const qualifier cannot be applied to function types.
@@ -83,74 +83,84 @@
// struct arg_const< R [(*|&)](A0, ...) > {
// typedef R ([*|&] type)(A0, ...); // Just relay type without const.
// };
-#define CONTRACT_AUX_ARG_CONST_func(z, arity, spec_type) \
+#define BOOST_CONTRACT_AUX_ARG_CONST_func(z, arity, spec_type) \
template< \
typename R BOOST_PP_COMMA_IF(arity) \
- BOOST_PP_ENUM_ ## z(arity, CONTRACT_AUX_ARG_CONST_func_A, 1) \
+ BOOST_PP_ENUM_ ## z(arity, BOOST_CONTRACT_AUX_ARG_CONST_func_A, 1) \
> \
struct arg_const< \
R BOOST_PP_TUPLE_ELEM(2, 0, spec_type)(/* expand EMPTY */) \
- ( BOOST_PP_ENUM_ ## z(arity, CONTRACT_AUX_ARG_CONST_func_A, 0) ) \
+ ( BOOST_PP_ENUM_ ## z(arity, BOOST_CONTRACT_AUX_ARG_CONST_func_A, 0) ) \
> { \
typedef \
R BOOST_PP_TUPLE_ELEM(2, 1, spec_type) \
- ( BOOST_PP_ENUM_ ## z(arity, CONTRACT_AUX_ARG_CONST_func_A, 0) ) \
+ ( BOOST_PP_ENUM_ ## \
+ z(arity, BOOST_CONTRACT_AUX_ARG_CONST_func_A, 0) ) \
; \
};
// Function types.
-BOOST_PP_REPEAT(CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
- CONTRACT_AUX_ARG_CONST_func, (BOOST_PP_EMPTY, (type)) )
+BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
+ BOOST_CONTRACT_AUX_ARG_CONST_func, (BOOST_PP_EMPTY, (type)) )
// Function pointers.
-BOOST_PP_REPEAT(CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
- CONTRACT_AUX_ARG_CONST_func, ((*) BOOST_PP_EMPTY, (* type)) )
+BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
+ BOOST_CONTRACT_AUX_ARG_CONST_func, ((*) BOOST_PP_EMPTY, (* type)) )
// Function references.
-BOOST_PP_REPEAT(CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
- CONTRACT_AUX_ARG_CONST_func, ((&) BOOST_PP_EMPTY, (& type)) )
+BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
+ BOOST_CONTRACT_AUX_ARG_CONST_func, ((&) BOOST_PP_EMPTY, (& type)) )
// #Undefine all local macros (mixed capital names).
-#undef CONTRACT_AUX_ARG_CONST_func_A
-#undef CONTRACT_AUX_ARG_CONST_func
+#undef BOOST_CONTRACT_AUX_ARG_CONST_func_A
+#undef BOOST_CONTRACT_AUX_ARG_CONST_func
// Specializations for Arrays //
-#define CONTRACT_AUX_ARG_CONST_array_I(z, n, unsigned01) \
+#define BOOST_CONTRACT_AUX_ARG_CONST_array_I(z, n, unsigned01) \
BOOST_PP_EXPR_IIF(unsigned01, unsigned) BOOST_PP_CAT(I, n)
-#define CONTRACT_AUX_ARG_CONST_array_dim(z, n, unused) \
- [ CONTRACT_AUX_ARG_CONST_array_I(z, n, 0) ]
+#define BOOST_CONTRACT_AUX_ARG_CONST_array_dim(z, n, unused) \
+ [ BOOST_CONTRACT_AUX_ARG_CONST_array_I(z, n, 0) ]
-#define CONTRACT_AUX_ARG_CONST_array(z, dim, const01) \
+#define BOOST_CONTRACT_AUX_ARG_CONST_array(z, dim, const01) \
template< \
typename T, \
- BOOST_PP_ENUM_ ## z(dim, CONTRACT_AUX_ARG_CONST_array_I, 1) \
+ BOOST_PP_ENUM_ ## z(dim, BOOST_CONTRACT_AUX_ARG_CONST_array_I, 1) \
> \
struct arg_const< \
T BOOST_PP_EXPR_IIF(const01, const) \
- BOOST_PP_REPEAT_ ## z(dim, CONTRACT_AUX_ARG_CONST_array_dim, ~) \
+ BOOST_PP_REPEAT_ ## z(dim, BOOST_CONTRACT_AUX_ARG_CONST_array_dim, ~) \
> { \
typedef \
typename boost::add_const<T>::type \
type \
- BOOST_PP_REPEAT_ ## z(dim, CONTRACT_AUX_ARG_CONST_array_dim, ~) \
+ BOOST_PP_REPEAT_ ## \
+ z(dim, BOOST_CONTRACT_AUX_ARG_CONST_array_dim, ~) \
; \
};
// For non-const array types `T[]...[]`.
-BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(CONTRACT_CONFIG_ARRAY_DIMENSION_MAX),
- CONTRACT_AUX_ARG_CONST_array, 0 /* no const */)
+BOOST_PP_REPEAT_FROM_TO(
+ 1
+ , BOOST_PP_INC(BOOST_CONTRACT_CONFIG_ARRAY_DIMENSION_MAX)
+ , BOOST_CONTRACT_AUX_ARG_CONST_array
+ , 0 /* no const */
+)
// For const array types `T const[]...[]`.
-BOOST_PP_REPEAT_FROM_TO(1, BOOST_PP_INC(CONTRACT_CONFIG_ARRAY_DIMENSION_MAX),
- CONTRACT_AUX_ARG_CONST_array, 1 /* const */)
+BOOST_PP_REPEAT_FROM_TO(
+ 1
+ , BOOST_PP_INC(BOOST_CONTRACT_CONFIG_ARRAY_DIMENSION_MAX)
+ , BOOST_CONTRACT_AUX_ARG_CONST_array
+ , 1 /* const */
+)
+
+#undef BOOST_CONTRACT_AUX_ARG_CONST_array_I
+#undef BOOST_CONTRACT_AUX_ARG_CONST_array_dim
+#undef BOOST_CONTRACT_AUX_ARG_CONST_array
-#undef CONTRACT_AUX_ARG_CONST_array_I
-#undef CONTRACT_AUX_ARG_CONST_array_dim
-#undef CONTRACT_AUX_ARG_CONST_array
-
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/bind_old.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/bind_old.hpp (original)
+++ sandbox/contract/boost/contract/aux_/bind_old.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,15 +6,15 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_BIND_OLD_HPP_
-# define CONTRACT_AUX_BIND_OLD_HPP_
+# ifndef BOOST_CONTRACT_AUX_BIND_OLD_HPP_
+# define BOOST_CONTRACT_AUX_BIND_OLD_HPP_
-#include <contract/copy.hpp>
-#include <contract/config.hpp>
-#include <contract/aux_/mpl_assert.hpp>
-#include <contract/aux_/arg_const.hpp>
-#include <contract/aux_/result_const.hpp>
-#include <contract/aux_/preprocessor/iteration/params.hpp>
+#include <boost/contract/copy.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/arg_const.hpp>
+#include <boost/contract/aux_/result_const.hpp>
+#include <boost/contract/aux_/preprocessor/iteration/params.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/noncopyable.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -29,48 +29,48 @@
#include <boost/preprocessor/iteration/iterate.hpp>
// Old-ofs.
-#define CONTRACT_comma_Old(z, n, unused) \
+#define BOOST_CONTRACT_comma_Old(z, n, unused) \
, BOOST_PP_CAT(Old, n)
-#define CONTRACT_comma_typename_Old(z, n, unused) \
+#define BOOST_CONTRACT_comma_typename_Old(z, n, unused) \
, typename BOOST_PP_CAT(Old, n)
-#define CONTRACT_comma_typename_Old_default(z, n, unused) \
+#define BOOST_CONTRACT_comma_typename_Old_default(z, n, unused) \
, typename BOOST_PP_CAT(Old, n) = void_old
-#define CONTRACT_comma_arg_const_Old(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg_const_Old(z, n, unused) \
, typename arg_const< BOOST_PP_CAT(Old, n) >::type
-#define CONTRACT_comma_arg_const_Old_old(z, n, unused) \
- CONTRACT_comma_arg_const_Old(z, n, ~) BOOST_PP_CAT(old, n)
-#define CONTRACT_comma_old_value(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg_const_Old_old(z, n, unused) \
+ BOOST_CONTRACT_comma_arg_const_Old(z, n, ~) BOOST_PP_CAT(old, n)
+#define BOOST_CONTRACT_comma_old_value(z, n, unused) \
, BOOST_PP_CAT(_old, n)->value()
// Arguments.
-#define CONTRACT_Arg(z, n, unused) \
+#define BOOST_CONTRACT_Arg(z, n, unused) \
BOOST_PP_CAT(Arg, n)
-#define CONTRACT_comma_typename_Arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_typename_Arg(z, n, unused) \
, typename BOOST_PP_CAT(Arg, n)
-#define CONTRACT_comma_arg_const_Arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg_const_Arg(z, n, unused) \
, typename arg_const< BOOST_PP_CAT(Arg, n) >::type
-#define CONTRACT_arg_const_Arg_arg(z, n, unused) \
+#define BOOST_CONTRACT_arg_const_Arg_arg(z, n, unused) \
typename arg_const< BOOST_PP_CAT(Arg, n) >::type BOOST_PP_CAT(arg, n)
-#define CONTRACT_comma_arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg(z, n, unused) \
, BOOST_PP_CAT(arg, n)
// Typedefs.
-#define CONTRACT_typedef_postcondition_type(z, n, unused) \
+#define BOOST_CONTRACT_typedef_postcondition_type(z, n, unused) \
typedef \
void \
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::) \
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)\
* BOOST_PP_CAT(postcondition_type, n) ) \
( \
function_type \
- BOOST_PP_REPEAT_ ## z(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_arg_const_Arg, ~) \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_comma_arg_const_Old, ~) \
+ BOOST_PP_REPEAT_ ## z(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_arg_const_Arg, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_comma_arg_const_Old, ~) \
, typename result_const< Result >::type \
) \
/* post func always const for members (for const-correctness) */ \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const) \
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const) \
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
;
// Constructor.
-#define CONTRACT_comma_init_old(z, n, current_n) \
+#define BOOST_CONTRACT_comma_init_old(z, n, current_n) \
, \
BOOST_PP_CAT(_old, n)( \
BOOST_PP_IIF(BOOST_PP_GREATER(current_n, n), \
@@ -81,47 +81,49 @@
BOOST_PP_EMPTY \
)() \
)
-#define CONTRACT_init_post_enum(z, n, current_n) \
+#define BOOST_CONTRACT_init_post_enum(z, n, current_n) \
BOOST_PP_COMMA_IF(n) \
BOOST_PP_CAT(_post, n)( \
BOOST_PP_EXPR_IIF(BOOST_PP_EQUAL(n, current_n), post) \
)
-#define CONTRACT_constructor(z, n, unused) \
+#define BOOST_CONTRACT_constructor(z, n, unused) \
explicit bind_old(BOOST_PP_CAT(postcondition_type, n) post \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, \
- Class const CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE* const obj \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, \
+ Class const BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE* \
+ const obj \
) \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_comma_arg_const_Old_old, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_comma_arg_const_Old_old, ~) \
) : \
- BOOST_PP_REPEAT_ ## z(BOOST_PP_INC(CONTRACT_CONFIG_OLDOF_MAX), \
- CONTRACT_init_post_enum, n) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, _obj(obj)) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_OLDOF_MAX, CONTRACT_comma_init_old, n) \
+ BOOST_PP_REPEAT_ ## z(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_OLDOF_MAX), \
+ BOOST_CONTRACT_init_post_enum, n) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, _obj(obj))\
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_OLDOF_MAX, \
+ BOOST_CONTRACT_comma_init_old, n) \
{}
// Call operator implementation.
-#define CONTRACT_call_post(z, n, unused) \
+#define BOOST_CONTRACT_call_post(z, n, unused) \
if(BOOST_PP_CAT(_post, n)) { \
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, _obj->*) \
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, _obj->*)\
BOOST_PP_CAT(_post, n) ) \
( \
function_type() \
- BOOST_PP_REPEAT_ ## z(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_arg, ~) \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_comma_old_value, ~) \
+ BOOST_PP_REPEAT_ ## z(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_arg, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_comma_old_value, ~) \
, result \
); \
return; /* call made, exit */ \
}
// Member variables declarations.
-#define CONTRACT_decl_post(z, n, unused) \
+#define BOOST_CONTRACT_decl_post(z, n, unused) \
BOOST_PP_CAT(postcondition_type, n) const BOOST_PP_CAT(_post, n) ;
-#define CONTRACT_decl_old(z, n, unused) \
+#define BOOST_CONTRACT_decl_old(z, n, unused) \
boost::shared_ptr< copy< BOOST_PP_CAT(Old, n) > const > const \
BOOST_PP_CAT(_old, n) ;
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Specify tparam Old = void_old if smaller number of olds (all olds always
// given to avoid permutations of all possible args with all possible olds).
@@ -130,106 +132,108 @@
template<
typename F
- BOOST_PP_REPEAT(CONTRACT_CONFIG_OLDOF_MAX,
- CONTRACT_comma_typename_Old_default, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_OLDOF_MAX,
+ BOOST_CONTRACT_comma_typename_Old_default, ~)
>
class bind_old {
- CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
INTERNAL_ERROR_template_instantiated_with_invalid_parameters,
(types< F, Old0, Old1 >));
};
-}} // namespace contract::aux
+} } } // namespace
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/bind_old.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/bind_old.hpp")
# include BOOST_PP_ITERATE()
-# undef CONTRACT_comma_Old
-# undef CONTRACT_comma_typename
-# undef CONTRACT_comma_typename_Old_default
-# undef CONTRACT_comma_arg_const_Old
-# undef CONTRACT_comma_arg_const_Old_old
-# undef CONTRACT_comma_old_value
-# undef CONTRACT_Arg
-# undef CONTRACT_comma_typename_Arg
-# undef CONTRACT_comma_arg_const_Arg
-# undef CONTRACT_arg_const_Arg_arg
-# undef CONTRACT_comma_arg
-# undef CONTRACT_typedef_postcondition_type
-# undef CONTRACT_comma_init_old
-# undef CONTRACT_init_post_enum
-# undef CONTRACT_constructor
-# undef CONTRACT_call_post
-# undef CONTRACT_decl_post
-# undef CONTRACT_decl_old
+# undef BOOST_CONTRACT_comma_Old
+# undef BOOST_CONTRACT_comma_typename
+# undef BOOST_CONTRACT_comma_typename_Old_default
+# undef BOOST_CONTRACT_comma_arg_const_Old
+# undef BOOST_CONTRACT_comma_arg_const_Old_old
+# undef BOOST_CONTRACT_comma_old_value
+# undef BOOST_CONTRACT_Arg
+# undef BOOST_CONTRACT_comma_typename_Arg
+# undef BOOST_CONTRACT_comma_arg_const_Arg
+# undef BOOST_CONTRACT_arg_const_Arg_arg
+# undef BOOST_CONTRACT_comma_arg
+# undef BOOST_CONTRACT_typedef_postcondition_type
+# undef BOOST_CONTRACT_comma_init_old
+# undef BOOST_CONTRACT_init_post_enum
+# undef BOOST_CONTRACT_constructor
+# undef BOOST_CONTRACT_call_post
+# undef BOOST_CONTRACT_decl_post
+# undef BOOST_CONTRACT_decl_old
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
# define BOOST_PP_ITERATION_PARAMS_2 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER( \
- "contract/aux_/bind_old.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER( \
+ "boost/contract/aux_/bind_old.hpp")
# include BOOST_PP_ITERATE()
#elif BOOST_PP_ITERATION_DEPTH() == 2
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
// Define ..._IS_MEMBER, ..._MEMBER_CONST, and ..._MEMBER_VOLATILE (iter 2).
-# include <contract/aux_/preprocessor/iteration/cv_member_2.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template<
typename Result
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_typename_Arg, ~)
- BOOST_PP_REPEAT(CONTRACT_CONFIG_OLDOF_MAX, CONTRACT_comma_typename_Old, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_typename_Arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_OLDOF_MAX,
+ BOOST_CONTRACT_comma_typename_Old, ~)
>
class bind_old<
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
Class::) * )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
- BOOST_PP_REPEAT(CONTRACT_CONFIG_OLDOF_MAX, CONTRACT_comma_Old, ~)
+ ( BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~) )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_OLDOF_MAX, BOOST_CONTRACT_comma_Old, ~)
> {
public:
typedef
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
* function_type )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY, CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ ( BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~) )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
;
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_OLDOF_MAX),
- CONTRACT_typedef_postcondition_type, ~)
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_OLDOF_MAX),
+ BOOST_CONTRACT_typedef_postcondition_type, ~)
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_OLDOF_MAX),
- CONTRACT_constructor, ~)
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_OLDOF_MAX),
+ BOOST_CONTRACT_constructor, ~)
void operator()(
- BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_arg_const_Arg_arg, ~)
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_ARITY)
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_arg_const_Arg_arg, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY)
typename result_const< Result >::type result
) const {
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_OLDOF_MAX),
- CONTRACT_call_post, ~)
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_OLDOF_MAX),
+ BOOST_CONTRACT_call_post, ~)
}
private:
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_OLDOF_MAX),
- CONTRACT_decl_post, ~)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
- Class const CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE* const _obj;
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_OLDOF_MAX),
+ BOOST_CONTRACT_decl_post, ~)
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
+ Class const BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE* const _obj;
)
- BOOST_PP_REPEAT(CONTRACT_CONFIG_OLDOF_MAX, CONTRACT_decl_old, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_OLDOF_MAX, BOOST_CONTRACT_decl_old, ~)
};
-}} // namespace contract::aux
+} } } // namespace
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
Modified: sandbox/contract/boost/contract/aux_/call/constructor_entry.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/constructor_entry.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/constructor_entry.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,14 +6,14 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_CALL_CONSTRUCTOR_ENTRY_HPP_
-# define CONTRACT_AUX_CALL_CONSTRUCTOR_ENTRY_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/preprocessor/iteration/params.hpp>
+# ifndef BOOST_CONTRACT_AUX_CALL_CONSTRUCTOR_ENTRY_HPP_
+# define BOOST_CONTRACT_AUX_CALL_CONSTRUCTOR_ENTRY_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/params.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
-namespace contract { namespace aux {
+namespace boost{ namespace contract { namespace aux {
// NOTE: The Class tparam is necessary to make this a new type to inherit from
// for each new class (to avoid inheritance ambiguity errors-- virtual
@@ -21,35 +21,36 @@
// one call_constructor_entry base object and therefore check constructor entry
// contracts only for one of the base classes).
template< class Class >
-struct call_constructor_entry {
+struct call_constructor_entry
+{
// NOTE: This default constructor is necessary to allow for eventual user
// constructors without a contract (i.e., not wrapped by this lib macros).
- call_constructor_entry() {}
+ call_constructor_entry ( void ) {}
// Only defines additional constructors so it does not clash with member
// func/var names defined by user deriving from this class.
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/call/constructor_entry.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/call/constructor_entry.hpp")
# include BOOST_PP_ITERATE()
};
-}} // namespace contract::aux
+} } } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
-# define CONTRACT_AUX_CALL_ARITY CONTRACT_AUX_PP_ITERATION_ARITY
-# define CONTRACT_AUX_CALL_IS_MEMBER 1
-# define CONTRACT_AUX_CALL_IS_STATIC 0
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 1
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
+# define BOOST_CONTRACT_AUX_CALL_ARITY BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 0
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 1
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/call/constructor_exit.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/constructor_exit.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/constructor_exit.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,34 +6,34 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_CALL_CONSTRUCTOR_EXIT_HPP_
-# define CONTRACT_AUX_CALL_CONSTRUCTOR_EXIT_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/preprocessor/iteration/params.hpp>
+# ifndef BOOST_CONTRACT_AUX_CALL_CONSTRUCTOR_EXIT_HPP_
+# define BOOST_CONTRACT_AUX_CALL_CONSTRUCTOR_EXIT_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/params.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/call/constructor_exit.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/call/constructor_exit.hpp")
# include BOOST_PP_ITERATE()
-}} // namespace contract::aux
+} } } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
-# define CONTRACT_AUX_CALL_ARITY CONTRACT_AUX_PP_ITERATION_ARITY
-# define CONTRACT_AUX_CALL_IS_MEMBER 1
-# define CONTRACT_AUX_CALL_IS_STATIC 0
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 1
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
+# define BOOST_CONTRACT_AUX_CALL_ARITY BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 0
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 1
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/call/destructor.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/destructor.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/destructor.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,23 +5,23 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CALL_DESTRUCTOR_HPP_
-# define CONTRACT_AUX_CALL_DESTRUCTOR_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
-
-namespace contract { namespace aux {
-
-# define CONTRACT_AUX_CALL_ARITY 0 // Destructors have no argument.
-# define CONTRACT_AUX_CALL_IS_MEMBER 1
-# define CONTRACT_AUX_CALL_IS_STATIC 0
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 1
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+#ifndef BOOST_CONTRACT_AUX_CALL_DESTRUCTOR_HPP_
+# define BOOST_CONTRACT_AUX_CALL_DESTRUCTOR_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
+
+namespace boost { namespace contract { namespace aux {
+
+# define BOOST_CONTRACT_AUX_CALL_ARITY 0 // Destructors have no argument.
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 0
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 1
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
-}} // namespace contract::aux
+} } } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/call/free_function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/free_function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/free_function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,34 +6,34 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_CALL_FREE_FUNCTION_HPP_
-# define CONTRACT_AUX_CALL_FREE_FUNCTION_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/preprocessor/iteration/params.hpp>
+# ifndef BOOST_CONTRACT_AUX_CALL_FREE_FUNCTION_HPP_
+# define BOOST_CONTRACT_AUX_CALL_FREE_FUNCTION_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/params.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/call/free_function.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/call/free_function.hpp")
# include BOOST_PP_ITERATE()
-}} // namespace contract::aux
+} } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
-# define CONTRACT_AUX_CALL_ARITY CONTRACT_AUX_PP_ITERATION_ARITY
-# define CONTRACT_AUX_CALL_IS_MEMBER 0
-# define CONTRACT_AUX_CALL_IS_STATIC 0
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
+# define BOOST_CONTRACT_AUX_CALL_ARITY BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 0
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 0
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/call/globals.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/globals.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/globals.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CALL_GLOBALS_HPP_
-#define CONTRACT_AUX_CALL_GLOBALS_HPP_
+#ifndef BOOST_CONTRACT_AUX_CALL_GLOBALS_HPP_
+#define BOOST_CONTRACT_AUX_CALL_GLOBALS_HPP_
-#include <contract/aux_/thread_variable.hpp>
+#include <boost/contract/aux_/thread_variable.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// NOTE: A template is used to wrap these variables so they can be defined in
// this header (instead of requiring to link a pre-compiled .cpp for these
@@ -19,17 +19,18 @@
// copy for each translation unit when these variables need to globally have
// the same value for the entire program, and extern still requires the
// definitions somewhere in a .cpp which we wanted to avoid).
-template<int Unused = 0>
-struct call_globals {
+template< int Unused = 0 >
+struct call_globals
+{
// POLICY: Used to globally disable contract checking while already
// checking another contract.
static thread_variable<bool> is_checking_contract;
};
-template<int Unused>
+template< int Unused >
thread_variable<bool> call_globals<Unused>::is_checking_contract = false;
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/call/impl_/define.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/impl_/define.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/impl_/define.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,106 +5,108 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#define CONTRACT_comma_arg_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg_param(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(arg_type, n) BOOST_PP_CAT(arg, n)
-#define CONTRACT_arg(z, n, unused) \
+#define BOOST_CONTRACT_arg(z, n, unused) \
BOOST_PP_CAT(arg, n)
-#define CONTRACT_comma_arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg(z, n, unused) \
, BOOST_PP_CAT(arg, n)
-#define CONTRACT_from \
- BOOST_PP_IIF(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_MEMBER), \
+#define BOOST_CONTRACT_from \
+ BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_MEMBER), \
FROM_FREE_FUNCTION \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC, \
FROM_STATIC_MEMBER_FUNCTION \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
FROM_DESTRUCTOR \
- , BOOST_PP_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY, \
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT), \
+ , BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,\
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT), \
FROM_CONSTRUCTOR \
, \
FROM_NONSTATIC_MEMBER_FUNCTION \
))))
-#define CONTRACT_func \
- BOOST_PP_IIF(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_MEMBER), \
+#define BOOST_CONTRACT_func \
+ BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_MEMBER), \
call_free_function \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC, \
call_static_member_function \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
call_destructor \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY, \
call_constructor_entry \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
call_constructor_exit \
, \
call_nonstatic_member_function \
)))))
-#define CONTRACT_entry_class_inv_func \
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC, \
+#define BOOST_CONTRACT_entry_class_inv_func \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC, \
(*sub_static_class_inv) \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
(obj->*this_class_inv) \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY, \
(*this_static_class_inv) \
, \
(obj->*sub_class_inv) \
)))
-#define CONTRACT_exit_class_inv_func \
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC, \
+#define BOOST_CONTRACT_exit_class_inv_func \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC, \
(*sub_static_class_inv) \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR, \
(*this_static_class_inv) \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
(obj->*this_class_inv) \
, \
(obj->*sub_class_inv) \
)))
-#define CONTRACT_throw_class_inv_func \
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC, \
+#define BOOST_CONTRACT_throw_class_inv_func \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC, \
(*sub_static_class_inv) \
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
(*this_static_class_inv) \
, \
(obj->*sub_class_inv) /* also for throwing destructors */ \
))
-#define CONTRACT_pre_func \
- BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER, \
- BOOST_PP_BITAND(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC), \
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))), \
+#define BOOST_CONTRACT_pre_func \
+ BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER, \
+ BOOST_PP_BITAND(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC), \
+ BOOST_PP_COMPL( \
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))), \
(obj->*sub_pre) \
, \
(*this_pre) \
)
-#define CONTRACT_oldof_assignment_func \
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
+#define BOOST_CONTRACT_oldof_assignment_func \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT, \
this_post = (*this_cons_oldof) \
- , BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER, \
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)), \
+ , BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER, \
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)), \
sub_post = (obj->*sub_oldof) \
, \
this_post = (*this_oldof) \
))
-#define CONTRACT_post_func \
- BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER, \
- BOOST_PP_BITAND(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC), \
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))), \
+#define BOOST_CONTRACT_post_func \
+ BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER, \
+ BOOST_PP_BITAND(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC), \
+ BOOST_PP_COMPL( \
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))), \
subcontract_postcondition<SignTraits> \
, \
this_post \
)
-#define CONTRACT_body_func \
- BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER, \
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)), \
+#define BOOST_CONTRACT_body_func \
+ BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER, \
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)), \
(obj->*body) \
, \
(*body) \
Modified: sandbox/contract/boost/contract/aux_/call/impl_/function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/impl_/function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/impl_/function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,89 +5,89 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CALL_ARITY
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_ARITY"
+#ifndef BOOST_CONTRACT_AUX_CALL_ARITY
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_ARITY"
#endif
-#ifndef CONTRACT_AUX_CALL_IS_MEMBER
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_IS_MEMBER"
+#ifndef BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_IS_MEMBER"
#endif
-#ifndef CONTRACT_AUX_CALL_IS_STATIC
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_IS_STATIC"
+#ifndef BOOST_CONTRACT_AUX_CALL_IS_STATIC
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_IS_STATIC"
#endif
-#ifndef CONTRACT_AUX_CALL_IS_DESTRUCTOR
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_IS_DESTRUCTOR"
+#ifndef BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR"
#endif
-#ifndef CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY"
+#ifndef BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY"
#endif
-#ifndef CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
-# error "INTERNAL ERROR: must define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT"
+#ifndef BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+# error "INTERNAL ERROR: must define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT"
#endif
// The following code is fairly complex and hard to read due to the amount of
-// preprocessor metaprogramming that is used. This code was programmed this
+// preprocessor meta-programming that is used. This code was programmed this
// way so this one piece of code can generate *all* the call functions in order
// to *completely* avoid any code duplication in their implementations.
// Previous revisions or this code used to duplicate code among different call
// functions implementations but while these older revisions were more
// readable, they were very difficult to maintain because bug fixes and changes
// needed to be propagated among different part of the code. Therefore, all the
-// call code was incorporated into this one metaprogram (and it should be kept
+// call code was incorporated into this one meta-program (and it should be kept
// this way).
//
// The following code in general follows the conventions that #if-directives
// are used to turn on/off contract code blocks (via CONFIG macros) while
-// PP-macros are used to pp-metaprogram the function code (this distinction was
-// found to make this code a bit more readable).
+// PP-macros are used to pp meta-program the function code (this distinction
+// was found to make this code a bit more readable).
//
// See also: include_.hpp, define_.hpp, undef_.hpp
template< class SignTraits >
-BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY),
+BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY),
// This generates a cons for constructor entry so no result allowed.
typename SignTraits::result_type
)
-CONTRACT_func
+BOOST_CONTRACT_func
(
-#if CONTRACT_AUX_CONFIG_DEBUG_01
+#if BOOST_CONTRACT_AUX_CONFIG_DEBUG_01
char const* file, unsigned long const& line, // Trailing comma `,`.
#endif
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
// NOTE: Need to deduce this param because ISO C++ does not allow to
// specify tparams for const (because invoked without a name).
SignTraits
,
typename SignTraits::body_type const body
)
- BOOST_PP_REPEAT(CONTRACT_AUX_CALL_ARITY, CONTRACT_comma_arg_param, ~)
- BOOST_PP_COMMA_IF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))))
- BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))),
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_CALL_ARITY, BOOST_CONTRACT_comma_arg_param, ~)
+ BOOST_PP_COMMA_IF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER,
+ BOOST_PP_BITAND(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC),
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))))
+ BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER,
+ BOOST_PP_BITAND(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC),
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))),
typename SignTraits::cv_qualified_obj_type const obj
)
-#if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER
- BOOST_PP_COMMA_IF(BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
- BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)))
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
- BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)),
+#if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ BOOST_PP_COMMA_IF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)))
+ BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)),
typename SignTraits::static_class_invariant_type const
this_static_class_inv
)
-# if !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
- BOOST_PP_COMMA_IF(BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT),
+# if !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+ BOOST_PP_COMMA_IF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))
+ BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT),
typename SignTraits::class_invariant_type const this_class_inv
)
-# if !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+# if !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
, typename SignTraits::
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC,
static_class_invariant_type const sub_static_class_inv
,
class_invariant_type const sub_class_inv
@@ -95,51 +95,56 @@
# endif
# endif
#endif
-#if CONTRACT_AUX_CONFIG_PRECONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR \
- && !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+#if BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
, typename SignTraits::
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
static_precondition_type
,
precondition_type
)
const
- BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
+ BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER,
BOOST_PP_BITAND(BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_STATIC), BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))),
+ BOOST_CONTRACT_AUX_CALL_IS_STATIC), BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY))),
sub_pre
,
this_pre
)
#endif
-#if CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR \
- && !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+#if BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
, typename SignTraits::
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
constructor_oldof_type const this_cons_oldof
- , BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)),
+ , BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_CONTRACT_AUX_CALL_IS_MEMBER,
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)),
subcontracted_oldof_type const sub_oldof
,
oldof_type const this_oldof
))
#endif
) {
- if(call_globals<>::is_checking_contract) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ if(call_globals<>::is_checking_contract)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Entering, executing body, and exiting function contract " <<
"without checking contracts because assertions disabled " <<
- "within assertions " << BOOST_PP_STRINGIZE(CONTRACT_body_func))
+ "within assertions " <<
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_body_func))
return
-#if !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
- CONTRACT_body_func(
- BOOST_PP_ENUM(CONTRACT_AUX_CALL_ARITY, CONTRACT_arg, ~)
- )
+#if !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+ BOOST_CONTRACT_body_func(
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_arg, ~)
+ )
#endif
;
}
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Entering function contract")
// POLICY: For constructors and destructors, subcontracting is realized by
@@ -147,15 +152,18 @@
// contracts via C++ object creation and disposal mechanism so here we
// just check this class constructor and destructor contract (not bases').
-#if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER && \
- !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+#if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ && BOOST_CONTRACT_AUX_CALL_IS_MEMBER \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
bool calling_body = false; // Used only for class inv.
- try {
+ try
+ {
#endif
// Check class invariants on entry.
-#if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER && \
- !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+#if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ && BOOST_CONTRACT_AUX_CALL_IS_MEMBER \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
// POLICY: Class inv are checked on entry/exit before pre/post so
// pre/post assertions can be simplified assuming inv are true (e.g.,
// don't check a ptr for nullity because inv already checked).
@@ -165,33 +173,38 @@
// because base class inv will be automatically invoked by C++ when
// calling base destructors.
if(
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC,
sub_static_class_inv
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
this_class_inv
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY,
this_static_class_inv
,
sub_class_inv
)))
) {
- try {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
- "Checking class invariants on entry " <<
- BOOST_PP_STRINGIZE(CONTRACT_entry_class_inv_func))
+ try
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg << "Checking class invariants on entry " <<
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_entry_class_inv_func))
call_globals<>::is_checking_contract = true;
- CONTRACT_entry_class_inv_func();
+ BOOST_CONTRACT_entry_class_inv_func();
call_globals<>::is_checking_contract = false;
- } catch(...) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_from, dbg <<
+ }
+ catch(...)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_from,
+ dbg <<
"Calling class invariant broken handler on entry")
call_globals<>::is_checking_contract = false;
- class_invariant_broken_on_entry(CONTRACT_from);
+ class_invariant_broken_on_entry(BOOST_CONTRACT_from);
}
}
-# if CONTRACT_AUX_CONFIG_DEBUG_01
- else {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+# if BOOST_CONTRACT_AUX_CONFIG_DEBUG_01
+ else
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Class invariant checking disabled on entry for " <<
"non-public member")
}
@@ -199,79 +212,97 @@
#endif
// Check preconditions.
-#if CONTRACT_AUX_CONFIG_PRECONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR \
- && !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
- try {
+#if BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+ try
+ {
// POLICY: By default, pre disable assertion checking globally like
// any other contract checking func to avoid infinite recursion but
// this can be changed for pre to comply with N1962.
-# if !CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+# if !BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Checking preconditions " <<
- BOOST_PP_STRINGIZE(CONTRACT_pre_func))
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_pre_func))
call_globals<>::is_checking_contract = true;
# else
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Checking preconditions configured to not disable " <<
"other assertions " <<
- BOOST_PP_STRINGIZE(CONTRACT_pre_func))
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_pre_func))
# endif
- CONTRACT_pre_func(
+ BOOST_CONTRACT_pre_func(
// NOTE: Body func ptr is also passed to the contract checking
// functions (pre, old-of, and post) to handle overloading.
typename SignTraits::body_type()
- BOOST_PP_REPEAT(CONTRACT_AUX_CALL_ARITY, CONTRACT_comma_arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_comma_arg, ~)
);
-# if !CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
+# if !BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
call_globals<>::is_checking_contract = false;
# endif
- } catch(...) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ }
+ catch(...)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Calling precondition broken handler")
-# if !CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
+# if !BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01
call_globals<>::is_checking_contract = false;
# endif
- precondition_broken(CONTRACT_from);
+ precondition_broken(BOOST_CONTRACT_from);
}
#endif
// Copy old-ofs.
-#if CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR \
- && !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+#if BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
// POLICY: An exception thrown while evaluating and copying old-ofs
// is threated as a post failure (while keeping the same active
// exception that failed the old-of) because (1) class inv at entry and
// pre passed so body can/should be executed but (2) old-ofs were not
// copied so post cannot be checked.
- BOOST_PP_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))),
- std::list< typename SignTraits::bound_postcondition_type > sub_post;
+ BOOST_PP_IIF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_BITAND(
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ , BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
+ )
+ ),
+ std::list< typename SignTraits::bound_postcondition_type >
+ sub_post;
,
typename SignTraits::bound_postcondition_type this_post;
)
bool oldof_failed = true;
- try {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ try
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Evaluating and coping postcondition old-ofs (" <<
- BOOST_PP_STRINGIZE(CONTRACT_oldof_assignment_func) << ")")
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_oldof_assignment_func) <<
+ ")")
// POLICY: Disable all assertions also during old-of evaluation and
// copy to prevent infinite recursion.
call_globals<>::is_checking_contract = true;
- CONTRACT_oldof_assignment_func(
+ BOOST_CONTRACT_oldof_assignment_func(
typename SignTraits::body_type()
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
obj
)
- BOOST_PP_REPEAT(CONTRACT_AUX_CALL_ARITY, CONTRACT_comma_arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_comma_arg, ~)
);
call_globals<>::is_checking_contract = false;
// NOTE: Following throw is used to jump to catch below (this trick
// is necessary to keep eventual old-of error in active exception
// to re-throw it later.
throw oldof_failed = false;
- } catch(...) {
+ }
+ catch(...)
+ {
// NOTE: Got here with oldof_failed == false iff no old-of error,
// or with oldof_failed == true iff old-of error (in which case the
// error is in the active exception).
@@ -279,11 +310,12 @@
#endif
// Call body (and copy result).
-#if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER && \
- !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+#if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ && BOOST_CONTRACT_AUX_CALL_IS_MEMBER \
+ && !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
calling_body = true;
#endif
-# if CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
+# if BOOST_CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
// POLICY: Only exceptions thrown by the body are handled by the
// function (and constructor) try-block. In particular, contract
// assertions and this library implementation code is executed
@@ -301,48 +333,65 @@
// exception but the one thrown by the body should be thrown.
dynamic_cast< constructor_try_block_guard< typename
SignTraits::class_type > >(obj)->
- CONTRACT_AUX_SYMBOL((enable))();
+ BOOST_CONTRACT_AUX_SYMBOL((enable))();
# endif
-#if !CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && \
- !CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && \
- !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+#if !BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && \
+ !BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && \
+ !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Executing body and returning without copying result " <<
- BOOST_PP_STRINGIZE(CONTRACT_body_func))
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_body_func))
// Optimization if no post (don't copy result).
- return CONTRACT_body_func(
- BOOST_PP_ENUM(CONTRACT_AUX_CALL_ARITY, CONTRACT_arg, ~)
+ return BOOST_CONTRACT_body_func(
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_arg, ~)
);
-#elif !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+#elif !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Executing body and copying eventual result " <<
- BOOST_PP_STRINGIZE(CONTRACT_body_func))
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_body_func))
copy_result<
typename SignTraits::result_type
- BOOST_PP_COMMA_IF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)))
- BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)),
+ BOOST_PP_COMMA_IF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ )
+ )
+ BOOST_PP_EXPR_IIF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ ),
typename SignTraits::cv_qualified_obj_type
)
> result(
body // Result copy will call actual body.
- BOOST_PP_COMMA_IF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)))
- BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_COMPL(CONTRACT_AUX_CALL_IS_STATIC)),
+ BOOST_PP_COMMA_IF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ )
+ )
+ BOOST_PP_EXPR_IIF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ ),
obj
)
- BOOST_PP_REPEAT(CONTRACT_AUX_CALL_ARITY, CONTRACT_comma_arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_comma_arg, ~)
);
-# if CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
+# if BOOST_CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
dynamic_cast< constructor_try_block_guard< typename
SignTraits::class_type > >(obj)->
- CONTRACT_AUX_SYMBOL((disable))();
+ BOOST_CONTRACT_AUX_SYMBOL((disable))();
# endif
// Check class invariants on exit.
-# if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER
+# if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ && BOOST_CONTRACT_AUX_CALL_IS_MEMBER
calling_body = false;
// POLICY: For destructors, cannot check dynamic class inv because
@@ -352,33 +401,38 @@
// class inv will be automatically invoked by C++ when calling base
// destructors).
if(
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC,
sub_static_class_inv
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_DESTRUCTOR,
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR,
this_static_class_inv
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
this_class_inv
,
sub_class_inv
)))
) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
- "Checking class invariants on exit " <<
- BOOST_PP_STRINGIZE(CONTRACT_exit_class_inv_func))
- try {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg << "Checking class invariants on exit " <<
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_exit_class_inv_func))
+ try
+ {
call_globals<>::is_checking_contract = true;
- CONTRACT_exit_class_inv_func();
+ BOOST_CONTRACT_exit_class_inv_func();
call_globals<>::is_checking_contract = false;
- } catch(...) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ }
+ catch(...)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg <<
"Calling class invariant on exit broken handler")
call_globals<>::is_checking_contract = false;
- class_invariant_broken_on_exit(CONTRACT_from);
+ class_invariant_broken_on_exit(BOOST_CONTRACT_from);
}
}
-# if CONTRACT_AUX_CONFIG_DEBUG_01
- else {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+# if BOOST_CONTRACT_AUX_CONFIG_DEBUG_01
+ else
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Class invariant checking on exit disabled for " <<
"non-public member")
}
@@ -386,71 +440,100 @@
# endif
// Check postconditions.
-# if CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR
- try {
- if(oldof_failed) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+# if BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR
+ try
+ {
+ if(oldof_failed)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg <<
"Unable to evaluate or copy old-of expressions (" <<
- BOOST_PP_STRINGIZE(CONTRACT_oldof_assignment_func)
- << ")")
+ BOOST_PP_STRINGIZE(
+ BOOST_CONTRACT_oldof_assignment_func) <<
+ ")")
throw; // Re-throw old-of error (from active exception).
}
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
- "Checking postconditions (" <<
- BOOST_PP_STRINGIZE(CONTRACT_post_func) << ")")
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg << "Checking postconditions (" <<
+ BOOST_PP_STRINGIZE(BOOST_CONTRACT_post_func) << ")")
call_globals<>::is_checking_contract = true;
- CONTRACT_post_func(
- BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(
- CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT))),
+ BOOST_CONTRACT_post_func(
+ BOOST_PP_EXPR_IIF(
+ BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_BITAND(
+ BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ , BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
+ )
+ ),
sub_post
)
- BOOST_PP_COMMA_IF(BOOST_PP_AND(CONTRACT_AUX_CALL_ARITY,
- BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)))))
- BOOST_PP_ENUM(CONTRACT_AUX_CALL_ARITY, CONTRACT_arg, ~)
- BOOST_PP_COMMA_IF(BOOST_PP_OR(CONTRACT_AUX_CALL_ARITY,
- BOOST_PP_BITAND(CONTRACT_AUX_CALL_IS_MEMBER,
- BOOST_PP_BITAND(BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_STATIC),
- BOOST_PP_COMPL(
- CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)))))
+ BOOST_PP_COMMA_IF(
+ BOOST_PP_AND(
+ BOOST_CONTRACT_AUX_CALL_ARITY
+ , BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_BITAND(
+ BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ , BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
+ )
+ )
+ )
+ )
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_CALL_ARITY,
+ BOOST_CONTRACT_arg, ~)
+ BOOST_PP_COMMA_IF(
+ BOOST_PP_OR(
+ BOOST_CONTRACT_AUX_CALL_ARITY
+ , BOOST_PP_BITAND(
+ BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+ , BOOST_PP_BITAND(
+ BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_STATIC)
+ , BOOST_PP_COMPL(
+ BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT)
+ )
+ )
+ )
+ )
result.param()
);
call_globals<>::is_checking_contract = false;
- } catch(...) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
- "Calling postcondition broken handler")
+ }
+ catch(...)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg << "Calling postcondition broken handler")
call_globals<>::is_checking_contract = false;
- postcondition_broken(CONTRACT_from);
+ postcondition_broken(BOOST_CONTRACT_from);
}
# endif
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Exiting function contract normally")
return result.value();
-# if CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !CONTRACT_AUX_CALL_IS_DESTRUCTOR
+# if BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 && !BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR
} // old-of catch
# endif
#endif // !post01 && !inv && !cons_entry
// Check class invariants on throw.
-#if CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && CONTRACT_AUX_CALL_IS_MEMBER && \
- !CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
- } catch(...) {
-# if CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
+#if BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 && BOOST_CONTRACT_AUX_CALL_IS_MEMBER && \
+ !BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+ }
+ catch(...)
+ {
+# if BOOST_CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
// Make sure to disable try-block before checking invariants on exit.
dynamic_cast< constructor_try_block_guard< typename
SignTraits::class_type > >(obj)->
- CONTRACT_AUX_SYMBOL((disable))();
+ BOOST_CONTRACT_AUX_SYMBOL((disable))();
# endif
// POLICY: Following exception safety guarantees, class inv (but not
// post) are checked also when body throws.
@@ -470,69 +553,79 @@
// undefined state (again, following exception safety rule destructors
// should never throw so this should never happen).
if(
- BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_STATIC,
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_STATIC,
sub_static_class_inv
- , BOOST_PP_IIF(CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT,
this_static_class_inv
,
sub_class_inv
))
&& calling_body
) {
- try {
- try {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
- "Checking class invariants on throw " <<
- BOOST_PP_STRINGIZE(CONTRACT_throw_class_inv_func))
+ try
+ {
+ try
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg << "Checking class invariants on throw " <<
+ BOOST_PP_STRINGIZE(
+ BOOST_CONTRACT_throw_class_inv_func))
call_globals<>::is_checking_contract = true;
- CONTRACT_throw_class_inv_func();
+ BOOST_CONTRACT_throw_class_inv_func();
call_globals<>::is_checking_contract = false;
- } catch(...) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ }
+ catch(...)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func,
+ dbg <<
"Calling class invariant on throw broken handler")
call_globals<>::is_checking_contract = false;
- class_invariant_broken_on_throw(CONTRACT_from);
+ class_invariant_broken_on_throw(BOOST_CONTRACT_from);
}
- } catch(...) {
+ }
+ catch(...)
+ {
// NOTE: Re-throw eventual inv broken exception (this is needed
// to allow the user to reprogram the contract handlers to
// throw and exception instead of terminating).
throw;
}
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Exiting function contract on throw")
throw; // If invariant passed, re-throw body exception.
}
-# if CONTRACT_AUX_CONFIG_DEBUG_01
- else if(calling_body) {
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+# if BOOST_CONTRACT_AUX_CONFIG_DEBUG_01
+ else if(calling_body)
+ {
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Class invariant checking on throw disabled for " <<
"non-public member")
}
# endif
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Exiting function contract on throw")
-# if CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
- if(calling_body) {
+# if BOOST_CONTRACT_AUX_IS_CONSTRUCTOR_EXIT
+ if(calling_body)
+ {
// Enable constructor-try-block before re-throwing body exception.
dynamic_cast< constructor_try_block_guard< typename
SignTraits::class_type > >(obj)->
- CONTRACT_AUX_SYMBOL((enable))();
+ BOOST_CONTRACT_AUX_SYMBOL((enable))();
}
# endif
throw; // Re-throw (if no body call or no invariant checking).
}
#endif
- CONTRACT_AUX_DEBUGN(file, line, CONTRACT_func, dbg <<
+ BOOST_CONTRACT_AUX_DEBUGN(file, line, BOOST_CONTRACT_func, dbg <<
"Exiting function contract normally")
}
// Undefine named external arg macros (similar to BOOST_PP_ITERATION_PARAMS).
-#undef CONTRACT_AUX_CALL_ARITY
-#undef CONTRACT_AUX_CALL_IS_MEMBER
-#undef CONTRACT_AUX_CALL_IS_STATIC
-#undef CONTRACT_AUX_CALL_IS_DESTRUCTOR
-#undef CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
-#undef CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
+#undef BOOST_CONTRACT_AUX_CALL_ARITY
+#undef BOOST_CONTRACT_AUX_CALL_IS_MEMBER
+#undef BOOST_CONTRACT_AUX_CALL_IS_STATIC
+#undef BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR
+#undef BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY
+#undef BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT
Modified: sandbox/contract/boost/contract/aux_/call/impl_/include.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/impl_/include.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/impl_/include.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,13 +5,13 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#include <contract/broken.hpp>
-#include <contract/aux_/config.hpp>
-#include <contract/aux_/copy_result.hpp>
-#include <contract/aux_/debug.hpp>
-#include <contract/aux_/constructor_try_block_guard.hpp>
-#include <contract/aux_/call/globals.hpp>
-#include <contract/aux_/subcontract/postcondition.hpp>
+#include <boost/contract/broken.hpp>
+#include <boost/contract/aux_/config.hpp>
+#include <boost/contract/aux_/copy_result.hpp>
+#include <boost/contract/aux_/debug.hpp>
+#include <boost/contract/aux_/constructor_try_block_guard.hpp>
+#include <boost/contract/aux_/call/globals.hpp>
+#include <boost/contract/aux_/subboost/contract/postcondition.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/stringize.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
Modified: sandbox/contract/boost/contract/aux_/call/impl_/undef.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/impl_/undef.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/impl_/undef.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,16 +5,16 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#undef CONTRACT_comma_arg_param
-#undef CONTRACT_arg
-#undef CONTRACT_comma_arg
-#undef CONTRACT_from
-#undef CONTRACT_func
-#undef CONTRACT_entry_class_inv_func
-#undef CONTRACT_exit_class_inv_func
-#undef CONTRACT_throw_class_inv_func
-#undef CONTRACT_pre_func
-#undef CONTRACT_oldof_assignment_func
-#undef CONTRACT_post_func
-#undef CONTRACT_body_func
+#undef BOOST_CONTRACT_comma_arg_param
+#undef BOOST_CONTRACT_arg
+#undef BOOST_CONTRACT_comma_arg
+#undef BOOST_CONTRACT_from
+#undef BOOST_CONTRACT_func
+#undef BOOST_CONTRACT_entry_class_inv_func
+#undef BOOST_CONTRACT_exit_class_inv_func
+#undef BOOST_CONTRACT_throw_class_inv_func
+#undef BOOST_CONTRACT_pre_func
+#undef BOOST_CONTRACT_oldof_assignment_func
+#undef BOOST_CONTRACT_post_func
+#undef BOOST_CONTRACT_body_func
Modified: sandbox/contract/boost/contract/aux_/call/nonstatic_member_function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/nonstatic_member_function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/nonstatic_member_function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,34 +6,34 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_CALL_NONSTATIC_MEMBER_FUNCTION_HPP_
-# define CONTRACT_AUX_CALL_NONSTATIC_MEMBER_FUNCTION_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/preprocessor/iteration/params.hpp>
+# ifndef BOOST_CONTRACT_AUX_CALL_NONSTATIC_MEMBER_FUNCTION_HPP_
+# define BOOST_CONTRACT_AUX_CALL_NONSTATIC_MEMBER_FUNCTION_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/params.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/call/nonstatic_member_function.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/call/nonstatic_member_function.hpp")
# include BOOST_PP_ITERATE()
-}} // namespace contract::aux
+} } } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
-# define CONTRACT_AUX_CALL_ARITY CONTRACT_AUX_PP_ITERATION_ARITY
-# define CONTRACT_AUX_CALL_IS_MEMBER 1
-# define CONTRACT_AUX_CALL_IS_STATIC 0
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
+# define BOOST_CONTRACT_AUX_CALL_ARITY BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 0
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/call/static_member_function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/call/static_member_function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/call/static_member_function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,34 +6,34 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_CALL_STATIC_MEMBER_FUNCTION_HPP_
-# define CONTRACT_AUX_CALL_STATIC_MEMBER_FUNCTION_HPP_
-# include <contract/aux_/call/impl_/include.hpp>
-# include <contract/aux_/preprocessor/iteration/params.hpp>
+# ifndef BOOST_CONTRACT_AUX_CALL_STATIC_MEMBER_FUNCTION_HPP_
+# define BOOST_CONTRACT_AUX_CALL_STATIC_MEMBER_FUNCTION_HPP_
+# include <boost/contract/aux_/call/impl_/include.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/params.hpp>
# include <boost/preprocessor/iteration/iterate.hpp>
-# include <contract/aux_/call/impl_/define.hpp>
+# include <boost/contract/aux_/call/impl_/define.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/call/static_member_function.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/call/static_member_function.hpp")
# include BOOST_PP_ITERATE()
-}} // namespace contract::aux
+} } } // namespace
-# include <contract/aux_/call/impl_/undef.hpp>
+# include <boost/contract/aux_/call/impl_/undef.hpp>
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
-# define CONTRACT_AUX_CALL_ARITY CONTRACT_AUX_PP_ITERATION_ARITY
-# define CONTRACT_AUX_CALL_IS_MEMBER 1
-# define CONTRACT_AUX_CALL_IS_STATIC 1
-# define CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
-# define CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
-# include <contract/aux_/call/impl_/function.hpp> // Generate func code.
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
+# define BOOST_CONTRACT_AUX_CALL_ARITY BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
+# define BOOST_CONTRACT_AUX_CALL_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_CALL_IS_STATIC 1
+# define BOOST_CONTRACT_AUX_CALL_IS_DESTRUCTOR 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_ENTRY 0
+# define BOOST_CONTRACT_AUX_CALL_IS_CONSTRUCTOR_EXIT 0
+# include <boost/contract/aux_/call/impl_/function.hpp> // Generate func code.
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/concept_assert.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/concept_assert.hpp (original)
+++ sandbox/contract/boost/contract/aux_/concept_assert.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CONCEPT_ASSERT_HPP_
-#define CONTRACT_AUX_CONCEPT_ASSERT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CONCEPT_ASSERT_HPP_
+#define BOOST_CONTRACT_AUX_CONCEPT_ASSERT_HPP_
#include <boost/concept/requires.hpp>
#include <boost/preprocessor/cat.hpp>
@@ -16,20 +16,20 @@
// Add support for more compilers copying Boost.ConceptCheck implementation.
#if BOOST_MSVC
# if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
-# define CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
+# define BOOST_CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
enum { \
BOOST_PP_CAT(boost_concept_bheck, id) = \
sizeof(::boost::concepts::require< model_fn_ptr >) \
}
# else // Not vc-7.1
-# define CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
+# define BOOST_CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
enum { \
BOOST_PP_CAT(boost_concept_check, id) = \
sizeof(::boost::concepts::require_((model_fn_ptr)0)) \
}
# endif
#else
-# define CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
+# define BOOST_CONTRACT_AUX_CONCEPT_ASSERT_FN_(model_fn_ptr, id) \
typedef ::boost::concepts::detail::instantiate< \
&::boost::concepts::requirement_< model_fn_ptr >::failed > \
BOOST_PP_CAT(boost_concept_check, id)
@@ -38,8 +38,8 @@
// PUBLIC //
// Same as `BOOST_CONCEPT_ASSERT` but with id (for same line macro expansion).
-#define CONTRACT_AUX_CONCEPT_ASSERT(paren_model, id) \
- CONTRACT_AUX_CONCEPT_ASSERT_FN_(void (*) paren_model, id)
+#define BOOST_CONTRACT_AUX_CONCEPT_ASSERT(paren_model, id) \
+ BOOST_CONTRACT_AUX_CONCEPT_ASSERT_FN_(void (*) paren_model, id)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/config.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/config.hpp (original)
+++ sandbox/contract/boost/contract/aux_/config.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,79 +5,79 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CONFIG_HPP_
-#define CONTRACT_AUX_CONFIG_HPP_
+#ifndef BOOST_CONTRACT_AUX_CONFIG_HPP_
+#define BOOST_CONTRACT_AUX_CONFIG_HPP_
-#include <contract/config.hpp>
+#include <boost/contract/config.hpp>
#include <boost/config.hpp>
// Internal option to enable debug prints to `clog` (programmers should never
// need to access this).
-#ifdef CONTRACT_AUX_CONFIG_DEBUG
-# define CONTRACT_AUX_CONFIG_DEBUG_01 1
+#ifdef BOOST_CONTRACT_AUX_CONFIG_DEBUG
+# define BOOST_CONTRACT_AUX_CONFIG_DEBUG_01 1
#else
-# define CONTRACT_AUX_CONFIG_DEBUG_01 0
+# define BOOST_CONTRACT_AUX_CONFIG_DEBUG_01 0
#endif
// Internal option to change named parameter tag namespace (programmers
// should never need to access this).
-#ifndef CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT
-# define CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
- CONTRACT_AUX_SYMBOL( (params) )
+#ifndef BOOST_CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT
+# define BOOST_CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
+ BOOST_CONTRACT_AUX_SYMBOL( (params) )
#endif
-#ifdef CONTRACT_CONFIG_THREAD_SAFE
-# define CONTRACT_AUX_CONFIG_THREAD_SAFE_01 1
+#ifdef BOOST_CONTRACT_CONFIG_THREAD_SAFE
+# define BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01 1
#else
-# define CONTRACT_AUX_CONFIG_THREAD_SAFE_01 0
+# define BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01 0
#endif
-#ifdef CONTRACT_CONFIG_NO_PRECONDITIONS
-# define CONTRACT_AUX_CONFIG_PRECONDITIONS_01 0
+#ifdef BOOST_CONTRACT_CONFIG_NO_PRECONDITIONS
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 0
#else
-# define CONTRACT_AUX_CONFIG_PRECONDITIONS_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 1
#endif
-#ifdef CONTRACT_CONFIG_NO_POSTCONDITIONS
-# define CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 0
+#ifdef BOOST_CONTRACT_CONFIG_NO_POSTCONDITIONS
+# define BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 0
#else
-# define CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 1
#endif
-#ifdef CONTRACT_CONFIG_NO_CLASS_INVARIANTS
-# define CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 0
+#ifdef BOOST_CONTRACT_CONFIG_NO_CLASS_INVARIANTS
+# define BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 0
#else
-# define CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 1
#endif
-#ifdef CONTRACT_CONFIG_NO_BLOCK_INVARIANTS
-# define CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01 0
+#ifdef BOOST_CONTRACT_CONFIG_NO_BLOCK_INVARIANTS
+# define BOOST_CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01 0
#else
-# define CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01 1
#endif
-#ifdef CONTRACT_CONFIG_NO_LOOP_VARIANTS
-# define CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01 0
+#ifdef BOOST_CONTRACT_CONFIG_NO_LOOP_VARIANTS
+# define BOOST_CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01 0
#else
-# define CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01 1
#endif
-#ifdef CONTRACT_CONFIG_DO_NOT_OVERRIDE_PRECONDITIONS
-# define CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01 0
+#ifdef BOOST_CONTRACT_CONFIG_DO_NOT_OVERRIDE_PRECONDITIONS
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01 0
#else
-# define CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01 1
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01 1
#endif
-#ifdef CONTRACT_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE
-# define CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01 1
+#ifdef BOOST_CONTRACT_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE
+# define BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01 1
#else
-# define CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01 0
+# define BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01 0
#endif
-#ifdef CONTRACT_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION
-# define CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01 1
+#ifdef BOOST_CONTRACT_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01 1
#else
-# define CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01 0
+# define BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_DISABLE_NO_ASSERTION_01 0
#endif
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/constructor_inits_eval.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/constructor_inits_eval.hpp (original)
+++ sandbox/contract/boost/contract/aux_/constructor_inits_eval.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,10 +5,10 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CONSTRUCTOR_INITS_EVAL_HPP_
-#define CONTRACT_AUX_CONSTRUCTOR_INITS_EVAL_HPP_
+#ifndef BOOST_CONTRACT_AUX_CONSTRUCTOR_INITS_EVAL_HPP_
+#define BOOST_CONTRACT_AUX_CONSTRUCTOR_INITS_EVAL_HPP_
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Predefined Ids for constructor inits evaluation expressions (defined in one
// place here so to make sure they are different).
@@ -30,7 +30,7 @@
// user-defined derived class.
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/constructor_try_block_guard.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/constructor_try_block_guard.hpp (original)
+++ sandbox/contract/boost/contract/aux_/constructor_try_block_guard.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CONSTRUCTOR_TRY_BLOCK_GUARD_HPP_
-#define CONTRACT_AUX_CONSTRUCTOR_TRY_BLOCK_GUARD_HPP_
+#ifndef BOOST_CONTRACT_AUX_CONSTRUCTOR_TRY_BLOCK_GUARD_HPP_
+#define BOOST_CONTRACT_AUX_CONSTRUCTOR_TRY_BLOCK_GUARD_HPP_
-#include <contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/symbol.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Need Class tparam to make this a unique base type for each new class.
template< class Class >
@@ -21,11 +21,11 @@
// These need to be named with library reserved symbols to not clash
// with member func/var names in user-defined derived class.
- bool CONTRACT_AUX_SYMBOL( (enabled) ) ( ) const { return enabled_; }
+ bool BOOST_CONTRACT_AUX_SYMBOL( (enabled) ) ( ) const { return enabled_; }
// NOTE: These need to return a value to be used within member inits set.
- bool CONTRACT_AUX_SYMBOL( (enable) ) ( ) { return enabled_ = true; }
- bool CONTRACT_AUX_SYMBOL( (disable) ) ( ) { return enabled_ = false; }
+ bool BOOST_CONTRACT_AUX_SYMBOL( (enable) ) ( ) { return enabled_ = true; }
+ bool BOOST_CONTRACT_AUX_SYMBOL( (disable) ) ( ) { return enabled_ = false; }
private:
// Constructors never const or volatile so no need to make this mutable,
@@ -33,7 +33,7 @@
bool enabled_;
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/copy_result.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/copy_result.hpp (original)
+++ sandbox/contract/boost/contract/aux_/copy_result.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_COPY_RESULT_HPP_
-#define CONTRACT_AUX_COPY_RESULT_HPP_
+#ifndef BOOST_CONTRACT_AUX_COPY_RESULT_HPP_
+#define BOOST_CONTRACT_AUX_COPY_RESULT_HPP_
-#include <contract/config.hpp>
-#include <contract/copy.hpp>
-#include <contract/aux_/result_const.hpp> // For void_result.
+#include <boost/contract/config.hpp>
+#include <boost/contract/copy.hpp>
+#include <boost/contract/aux_/result_const.hpp> // For void_result.
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
@@ -18,50 +18,50 @@
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/type_traits/add_reference.hpp>
-#define CONTRACT_comma_typename_Arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_typename_Arg(z, n, unused) \
, typename BOOST_PP_CAT(Arg, n)
-#define CONTRACT_comma_arg_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_arg_param(z, n, unused) \
/* NOTE: this param type must be a ref to avoid copying the arg (which */ \
/* might not have a copy cons, ref is OK because caller always uses a */ \
/* var to hold this param) plus add_reference can't be used otherwise */ \
/* Arg type cannot be deduced (and cons cannot specify tparams) */ \
, BOOST_PP_CAT(Arg, n) & \
BOOST_PP_CAT(arg, n)
-#define CONTRACT_arg(z, n, unused) \
+#define BOOST_CONTRACT_arg(z, n, unused) \
BOOST_PP_CAT(arg, n)
-#define CONTRACT_call_func(z, n, is_member) \
+#define BOOST_CONTRACT_call_func(z, n, is_member) \
BOOST_PP_IIF(is_member, \
(obj->*func) \
, \
(*func) \
)( \
- BOOST_PP_ENUM_ ## z(n, CONTRACT_arg, ~) \
+ BOOST_PP_ENUM_ ## z(n, BOOST_CONTRACT_arg, ~) \
)
-#define CONTRACT_cons_decl(z, n, is_member) \
+#define BOOST_CONTRACT_cons_decl(z, n, is_member) \
template< typename Func \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_comma_typename_Arg, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_comma_typename_Arg, ~) \
> \
explicit copy_result(Func const func \
BOOST_PP_COMMA_IF(is_member) \
BOOST_PP_EXPR_IIF(is_member, CVQualifiedObj const obj) \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_comma_arg_param, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_comma_arg_param, ~) \
)
-#define CONTRACT_cons(z, n, is_member) \
- CONTRACT_cons_decl(z, n, is_member) \
- : result_(CONTRACT_call_func(z, n, is_member)) {}
-#define CONTRACT_void_cons(z, n, is_member) \
- CONTRACT_cons_decl(z, n, is_member) \
- { CONTRACT_call_func(z, n, is_member) ; }
+#define BOOST_CONTRACT_cons(z, n, is_member) \
+ BOOST_CONTRACT_cons_decl(z, n, is_member) \
+ : result_(BOOST_CONTRACT_call_func(z, n, is_member)) {}
+#define BOOST_CONTRACT_void_cons(z, n, is_member) \
+ BOOST_CONTRACT_cons_decl(z, n, is_member) \
+ { BOOST_CONTRACT_call_func(z, n, is_member) ; }
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Copy result of non-void non-static mem func.
template< typename Result, class CVQualifiedObj = void >
struct copy_result {
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
- CONTRACT_cons, 1 /* member */) // INC(ARITY) for no arg.
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
+ BOOST_CONTRACT_cons, 1 /* member */) // INC(ARITY) for no arg.
typename copy<Result>::const_reference_type value() const
{ return result_.value(); }
@@ -74,8 +74,8 @@
// Copy result of non-void free func and static member func.
template< typename Result >
struct copy_result< Result, void > {
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
- CONTRACT_cons, 0 /* not member */) // INC(ARITY) for no arg.
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
+ BOOST_CONTRACT_cons, 0 /* not member */) // INC(ARITY) for no arg.
typename copy<Result>::const_reference_type value() const
{ return result_.value(); }
@@ -90,8 +90,8 @@
// Copy result of void non-static member func.
template< class CVQualifiedObj >
struct copy_result< void, CVQualifiedObj > {
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
- CONTRACT_void_cons, 1 /* member */) // INC(ARITY) for no arg.
+ BOOST_PP_REPEAT(BOOST_PP_INC(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
+ BOOST_CONTRACT_void_cons, 1 /* member */) // INC(ARITY) for no arg.
void value() const {} // There is no result to return (return void).
void_result param() const { return void_result(); }
@@ -100,22 +100,25 @@
// Copy result of void non-static member func.
template< >
struct copy_result< void, void > {
- BOOST_PP_REPEAT(BOOST_PP_INC(CONTRACT_CONFIG_FUNCTION_ARITY_MAX),
- CONTRACT_void_cons, 0 /* not member */) // INC(ARITY) for no arg.
+ BOOST_PP_REPEAT( // INC(ARITY) for no arg.
+ BOOST_PP_INC(BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX)
+ , BOOST_CONTRACT_void_cons
+ , 0 /* not member */
+ )
void value() const {} // There is no result to return (return void).
void_result param() const { return void_result(); }
};
-}} // namespace contract::aux
+} } } // namespace
-#undef CONTRACT_comma_typename_Arg
-#undef CONTRACT_comma_arg_param
-#undef CONTRACT_arg
-#undef CONTRACT_call_func
-#undef CONTRACT_cons_decl
-#undef CONTRACT_cons
-#undef CONTRACT_void_cons
+#undef BOOST_CONTRACT_comma_typename_Arg
+#undef BOOST_CONTRACT_comma_arg_param
+#undef BOOST_CONTRACT_arg
+#undef BOOST_CONTRACT_call_func
+#undef BOOST_CONTRACT_cons_decl
+#undef BOOST_CONTRACT_cons
+#undef BOOST_CONTRACT_void_cons
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/debug.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/debug.hpp (original)
+++ sandbox/contract/boost/contract/aux_/debug.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_DEBUG_HPP_
-#define CONTRACT_AUX_DEBUG_HPP_
+#ifndef BOOST_CONTRACT_AUX_DEBUG_HPP_
+#define BOOST_CONTRACT_AUX_DEBUG_HPP_
-#include <contract/aux_/config.hpp>
+#include <boost/contract/aux_/config.hpp>
-#if CONTRACT_AUX_CONFIG_DEBUG_01
+#if BOOST_CONTRACT_AUX_CONFIG_DEBUG_01
#include <boost/preprocessor/stringize.hpp>
#include <typeinfo>
@@ -21,30 +21,30 @@
// is turned off, *all* code used to generate the debug message must
// be passed as the 'code' param of the macro below (because that
// code is executed by the macro expansion only when debug is on).
-#define CONTRACT_AUX_DEBUG(file, line, code) \
+#define BOOST_CONTRACT_AUX_DEBUG(file, line, code) \
{ \
std::ostringstream dbg; /* decl special stream named `dbg` */ \
- { code; } /* code shall set dbg stream */ \
+ { code; } /* code shall set dbg stream, etc */ \
std::clog << file << ":" << line << " " << dbg.str() << std::endl; \
}
-#define CONTRACT_AUX_DEBUGN(file, line, name, code) \
- CONTRACT_AUX_DEBUG(file, line, \
+#define BOOST_CONTRACT_AUX_DEBUGN(file, line, name, code) \
+ BOOST_CONTRACT_AUX_DEBUG(file, line, \
dbg << "[" << BOOST_PP_STRINGIZE(name) << "] "; \
code; \
)
-#define CONTRACT_AUX_DEBUGT(file, line, type, code) \
- CONTRACT_AUX_DEBUG(file, line, \
+#define BOOST_CONTRACT_AUX_DEBUGT(file, line, type, code) \
+ BOOST_CONTRACT_AUX_DEBUG(file, line, \
dbg << "[" << typeid(type).name() << "] "; \
code; \
)
#else // debug
-#define CONTRACT_AUX_DEBUG(file, line, code) /* nothing */
-#define CONTRACT_AUX_DEBUGN(file, line, name, code) /* nothing */
-#define CONTRACT_AUX_DEBUGT(file, line, type, code) /* nothing */
+#define BOOST_CONTRACT_AUX_DEBUG(file, line, code) /* nothing */
+#define BOOST_CONTRACT_AUX_DEBUGN(file, line, name, code) /* nothing */
+#define BOOST_CONTRACT_AUX_DEBUGT(file, line, type, code) /* nothing */
#endif // debug
Modified: sandbox/contract/boost/contract/aux_/has_xxx_member_function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/has_xxx_member_function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/has_xxx_member_function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_HPP_
-#define CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_HPP_
+#ifndef BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_HPP_
+#define BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_HPP_
#include <boost/config.hpp>
#include <boost/mpl/at.hpp>
@@ -14,6 +14,7 @@
#include <boost/mpl/identity.hpp>
#include <boost/mpl/int.hpp>
#include <boost/mpl/quote.hpp>
+#include <boost/local_function/detail/preprocessor/line_counter.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/type_traits/remove_const.hpp>
#include <boost/type_traits/detail/yes_no_type.hpp>
@@ -21,16 +22,18 @@
// PRIVATE //
// Adapted from BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION (see Boost.TTI).
-#define CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_(id, trait, name) \
- template< class CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) > \
+#define BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_(id, trait, name) \
+ template< class BOOST_CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) > \
struct trait { \
- template< class CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncF)(id) ) > \
+ template< class BOOST_CONTRACT_AUX_SYMBOL( \
+ (IntroHasMemberFuncF)(id) ) > \
struct class_type { \
typedef \
typename boost::remove_const< \
typename boost::mpl::at< \
typename boost::function_types::parameter_types< \
- CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncF)(id) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( \
+ (IntroHasMemberFuncF)(id) ) \
, boost::mpl::quote1< boost::mpl::identity > \
>::type \
, boost::mpl::int_<0> \
@@ -39,18 +42,21 @@
type \
; \
}; \
- template< CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) > \
+ template< BOOST_CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) > \
struct helper; \
- template< class CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncU)(id) ) > \
+ template< class BOOST_CONTRACT_AUX_SYMBOL( \
+ (IntroHasMemberFuncU)(id) ) > \
static ::boost::type_traits::yes_type check( \
- helper<& CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncU)(id) ) ::name>* \
+ helper<& BOOST_CONTRACT_AUX_SYMBOL( \
+ (IntroHasMemberFuncU)(id) ) ::name>* \
); \
- template< class CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncU)(id) ) > \
+ template< class BOOST_CONTRACT_AUX_SYMBOL( \
+ (IntroHasMemberFuncU)(id) ) > \
static ::boost::type_traits::no_type check(...); \
BOOST_STATIC_CONSTANT( \
bool, value = \
sizeof(check<typename class_type< \
- CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( (IntroHasMemberFuncT)(id) ) \
>::type>(0)) \
== sizeof(::boost::type_traits::yes_type) \
); \
@@ -59,8 +65,9 @@
// PUBLIC //
-#define CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(trait, name) \
- CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_(__LINE__, trait, name)
+#define BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(trait, name) \
+ BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION_( \
+ BOOST_LOCAL_FUNCTION_DETAIL_PP_LINE_COUNTER, trait, name)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/identity_equal.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/identity_equal.hpp (original)
+++ sandbox/contract/boost/contract/aux_/identity_equal.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,20 +5,21 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_IDENTITY_EQUAL_HPP_
-#define CONTRACT_AUX_IDENTITY_EQUAL_HPP_
+#ifndef BOOST_CONTRACT_AUX_IDENTITY_EQUAL_HPP_
+#define BOOST_CONTRACT_AUX_IDENTITY_EQUAL_HPP_
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Used to internally deal with old-of value assignment symbol `var =`.
struct identity_equal {};
template< typename Left >
-Left const& operator== ( Left const& left, identity_equal const& ) {
+Left const& operator== ( Left const& left, identity_equal const& )
+{
return left;
}
-} } // namespace
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/loop_variant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/loop_variant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/loop_variant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_LOOP_VARIANT_HPP_
-#define CONTRACT_AUX_LOOP_VARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_LOOP_VARIANT_HPP_
+#define BOOST_CONTRACT_AUX_LOOP_VARIANT_HPP_
-#include <contract/aux_/macro/code_/loop_variant.hpp>
+#include <boost/contract/aux_/macro/code_/loop_variant.hpp>
-namespace contract { namespace aux { namespace loop_variant {
+namespace boost { namespace contract { namespace aux { namespace loop_variant {
// NOTE: Loop variant must be >= 0 however that property is asserted instead of
// using unsigned type here because C++ will still allow to assign signed
@@ -24,7 +24,9 @@
// NOTE: This declared/undeclared mechanism cannot be made generic with respect
// to value_type because otherwise sizeof used for tpl spec below will depend
// of the tparam used instead of value_type.
-template< int DUMMY = 0 > struct declared {
+template< int DUMMY = 0 >
+struct declared
+{
value_type value;
static int const cmp2 = 0;
friend void operator> ( int, declared const& ) {}
@@ -38,7 +40,7 @@
template<> struct resolve<sizeof(undeclared)>
{ template< int > struct cmp1 { static int const cmp2 = 0; }; };
-}}} // namespace contract::aux::loop_variant
+} } } } // namespace
// This must be decl extern and in global namepsace (so visible to any later
// decl of OLD_VAR in any namespace or local context). Later decl should be of
@@ -51,7 +53,7 @@
// there is one less macro plus the library doesn't use _END macros for CLASS,
// FUNCTION, etc (so the macro API is more symmetric without LOOP_END).
extern contract::aux::loop_variant::undeclared
- CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR;
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR;
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/block_invariant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/block_invariant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/block_invariant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,39 +5,43 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_BLOCK_INVARIANT_HPP_
-#define CONTRACT_AUX_BLOCK_INVARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_BLOCK_INVARIANT_HPP_
+#define BOOST_CONTRACT_AUX_BLOCK_INVARIANT_HPP_
-#include <contract/aux_/call/globals.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
-#include <contract/detail/preprocessor/traits/assertion.hpp>
+#include <boost/contract/aux_/call/globals.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/detail/preprocessor/traits/assertion.hpp>
// PRIVATE //
-#define CONTRACT_AUX_BLOCK_INVARIANT_ASSERTION_FUNC_CALL_( \
+#define BOOST_CONTRACT_AUX_BLOCK_INVARIANT_ASSERTION_FUNC_CALL_( \
d, id, tpl, unused, a) \
ERROR_requires_not_allowed_for_block_invariant_assertions \
(); /* fake function call will generate compiler-error */
-#define CONTRACT_AUX_BLOCK_INVARIANT_(id, tpl, assertion_seq) \
- try { \
+#define BOOST_CONTRACT_AUX_BLOCK_INVARIANT_(id, tpl, assertion_seq) \
+ try \
+ { \
::contract::aux::call_globals<>::is_checking_contract = true; \
/* following assertion throw contract::broken on failure */ \
- CONTRACT_AUX_CODE_ASSERT(id, tpl, block_invariant, \
- CONTRACT_AUX_BLOCK_INVARIANT_ASSERTION_FUNC_CALL_, ~, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS( \
- CONTRACT_DETAIL_PP_SEQ_TO_LIST_NEVER_EMPTY(assertion_seq))) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, block_invariant, \
+ BOOST_CONTRACT_AUX_BLOCK_INVARIANT_ASSERTION_FUNC_CALL_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS( \
+ BOOST_CONTRACT_DETAIL_PP_SEQ_TO_LIST_NEVER_EMPTY( \
+ assertion_seq))) \
::contract::aux::call_globals<>::is_checking_contract = false; \
- } catch(...) { \
+ } \
+ catch(...) \
+ { \
::contract::aux::call_globals<>::is_checking_contract = false; \
::contract::block_invariant_broken(::contract::FROM_BODY); \
}
// PUBLIC //
-#define CONTRACT_AUX_BLOCK_INVARIANT(id, tpl, assertion_seq) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01, \
- CONTRACT_AUX_BLOCK_INVARIANT_ \
+#define BOOST_CONTRACT_AUX_BLOCK_INVARIANT(id, tpl, assertion_seq) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_BLOCK_INVARIANTS_01, \
+ BOOST_CONTRACT_AUX_BLOCK_INVARIANT_ \
, \
BOOST_PP_TUPLE_EAT(3) \
)(id, tpl, assertion_seq)
Modified: sandbox/contract/boost/contract/aux_/macro/body.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/body.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/body.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,50 +5,52 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_BODY_HPP_
-#define CONTRACT_AUX_BODY_HPP_
+#ifndef BOOST_CONTRACT_AUX_BODY_HPP_
+#define BOOST_CONTRACT_AUX_BODY_HPP_
-#include <contract/detail/preprocessor/traits/body.hpp>
+#include <boost/contract/detail/preprocessor/traits/body.hpp>
// PRIVATE //
-#define CONTRACT_AUX_BODY_FUNCTION_(body_traits) \
- CONTRACT_AUX_CODE_NAME( \
- CONTRACT_DETAIL_PP_BODY_TRAITS_OPERATOR(body_traits), \
- CONTRACT_DETAIL_PP_BODY_TRAITS_NAME(body_traits))
+#define BOOST_CONTRACT_AUX_BODY_FUNCTION_(body_traits) \
+ BOOST_CONTRACT_AUX_CODE_NAME( \
+ BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS_OPERATOR(body_traits), \
+ BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS_NAME(body_traits))
-#define CONTRACT_AUX_BODY_FUNCTION_CONTRACTED_(body_traits) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+#define BOOST_CONTRACT_AUX_BODY_FUNCTION_BOOST_CONTRACTED_(body_traits) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
0, /* not constructor */ \
0, /* not destructor */ \
- CONTRACT_DETAIL_PP_BODY_TRAITS_OPERATOR(body_traits), \
- CONTRACT_DETAIL_PP_BODY_TRAITS_NAME(body_traits), \
+ BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS_OPERATOR(body_traits), \
+ BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS_NAME(body_traits), \
(body))
// PUBLIC //
-#define CONTRACT_AUX_BODY_CLASS_TYPE(class_type) \
+#define BOOST_CONTRACT_AUX_BODY_CLASS_TYPE(class_type) \
/* handle possible extra parenthesis to wrap commas within class_type */ \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_BODY_TRAITS_CLASS_TYPE(class_type))
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS_CLASS_TYPE( \
+ class_type))
-#define CONTRACT_AUX_BODY_FUNCTION(name) \
- CONTRACT_AUX_BODY_FUNCTION_(CONTRACT_DETAIL_PP_BODY_TRAITS( \
+#define BOOST_CONTRACT_AUX_BODY_FUNCTION(name) \
+ BOOST_CONTRACT_AUX_BODY_FUNCTION_(BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS( \
0 /* not constructor */, 0 /* not destructor */, name))
-#define CONTRACT_AUX_BODY_FUNCTION_CONTRACTED(name) \
- CONTRACT_AUX_BODY_FUNCTION_CONTRACTED_(CONTRACT_DETAIL_PP_BODY_TRAITS( \
- 0 /* not constructor */, 0 /* not destructor */, name))
+#define BOOST_CONTRACT_AUX_BODY_FUNCTION_BOOST_CONTRACTED(name) \
+ BOOST_CONTRACT_AUX_BODY_FUNCTION_BOOST_CONTRACTED_( \
+ BOOST_CONTRACT_DETAIL_PP_BODY_TRAITS(0 /* not constructor */, \
+ 0 /* not destructor */, name))
-#define CONTRACT_AUX_BODY_CONSTRUCTOR_CONTRACTED(body_traits) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+#define BOOST_CONTRACT_AUX_BODY_CONSTRUCTOR_BOOST_CONTRACTED(body_traits) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
1, /* constructor */ \
0, /* not destructor */ \
(0, ()), /* no operator traits */ \
BOOST_PP_EMPTY, /* no name traits */ \
(body))
-#define CONTRACT_AUX_BODY_DESTRUCTOR_CONTRACTED(body_traits) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+#define BOOST_CONTRACT_AUX_BODY_DESTRUCTOR_BOOST_CONTRACTED(body_traits) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
0, /* constructor */ \
1, /* not destructor */ \
(0, ()), /* no operator traits */ \
@@ -59,8 +61,8 @@
// constructor body cannot be deferred without delegating constructors, and
// destructors have no parameter so no named parameter). The class type is
// pulled out so the same macro can be used for both free and member functions.
-#define CONTRACT_AUX_BODY_PARAMETER_FUNCTION_CONTRACTED(func_name) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+#define BOOST_CONTRACT_AUX_BODY_PARAMETER_FUNCTION_BOOST_CONTRACTED(func_name) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
0, /* not constructor */ \
0, /* not destructor */ \
(0, ()), /* not operator (named params n/a for operators now) */ \
Modified: sandbox/contract/boost/contract/aux_/macro/class.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/class.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/class.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,28 +5,28 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CLASS_HPP_
-#define CONTRACT_AUX_CLASS_HPP_
+#ifndef BOOST_CONTRACT_AUX_CLASS_HPP_
+#define BOOST_CONTRACT_AUX_CLASS_HPP_
-#include <contract/aux_/debug.hpp>
-#include <contract/aux_/config.hpp>
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/constructor_inits_eval.hpp>
-#include <contract/aux_/constructor_try_block_guard.hpp>
-#include <contract/aux_/call/constructor_entry.hpp>
-#include <contract/aux_/macro/code_/typename.hpp>
-#include <contract/aux_/macro/code_/template.hpp>
-#include <contract/aux_/macro/code_/named_params_class_template.hpp>
-#include <contract/aux_/macro/code_/class_concept.hpp>
-#include <contract/aux_/macro/code_/base.hpp>
-#include <contract/aux_/macro/code_/class.hpp>
-#include <contract/aux_/macro/code_/class_final.hpp>
-#include <contract/aux_/macro/code_/class_invariant_const.hpp>
-#include <contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
-#include <contract/aux_/macro/code_/class_invariant_static.hpp>
-#include <contract/detail/preprocessor/traits/class.hpp> // c
-#include <contract/detail/preprocessor/traits/base.hpp> // b
-#include <contract/detail/preprocessor/keyword/class.hpp>
+#include <boost/contract/aux_/debug.hpp>
+#include <boost/contract/aux_/config.hpp>
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/constructor_inits_eval.hpp>
+#include <boost/contract/aux_/constructor_try_block_guard.hpp>
+#include <boost/contract/aux_/call/constructor_entry.hpp>
+#include <boost/contract/aux_/macro/code_/typename.hpp>
+#include <boost/contract/aux_/macro/code_/template.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_class_template.hpp>
+#include <boost/contract/aux_/macro/code_/class_concept.hpp>
+#include <boost/contract/aux_/macro/code_/base.hpp>
+#include <boost/contract/aux_/macro/code_/class.hpp>
+#include <boost/contract/aux_/macro/code_/class_final.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_const.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_static.hpp>
+#include <boost/contract/detail/preprocessor/traits/class.hpp> // c
+#include <boost/contract/detail/preprocessor/traits/base.hpp> // b
+#include <boost/contract/detail/preprocessor/keyword/class.hpp>
#include <boost/utility/identity_type.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
@@ -54,115 +54,125 @@
// Bases.
// Precondition: size(nilseq) > 1.
-#define CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_ENUM_(nilseq) \
+#define BOOST_CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_ENUM_(nilseq) \
BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TAIL(nilseq)) // TAIL ignores leading NIL.
-#define CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_(nilseq) \
+#define BOOST_CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_(nilseq) \
BOOST_PP_IIF(BOOST_PP_GREATER(BOOST_PP_SEQ_SIZE(nilseq), 1), \
: /* inherit symbol */ \
- CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_ENUM_ \
+ BOOST_CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_ENUM_ \
, \
BOOST_PP_TUPLE_EAT(1) \
)(nilseq)
-#define CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_(c) \
+#define BOOST_CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_(c) \
/* template specialization params */ \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
< \
) \
- BOOST_PP_LIST_ENUM(CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)) \
+ BOOST_PP_LIST_ENUM( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
> \
)
-#define CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+#define BOOST_CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
/* remove and then add reference to handle abstract types */ \
::boost::remove_reference< \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
/* use IDENTITY_TYPE because eventual tparams separated by commas */ \
BOOST_IDENTITY_TYPE(( \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
::boost::add_reference< \
/* the actual class type (with eventual tparams) */ \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
/* either template specialization types... */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
- CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_ \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS( \
+ c)), \
+ BOOST_CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_ \
, \
BOOST_PP_TUPLE_EAT(1) \
)(c) \
/* ... or, template parameter types */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS(c)), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_SPECIALIZATIONS( \
+ c)), \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE \
- )(CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE \
+ )(BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c))) \
>::type \
)) \
>::type
-#define CONTRACT_AUX_CLASS_INVARIANTS_(id, tpl, c) \
+#define BOOST_CONTRACT_AUX_CLASS_INVARIANTS_(id, tpl, c) \
/* subcontract only from base classes that have been also contracted */ \
- public: CONTRACT_AUX_CODE_SUBCONTRACT_CLASS_INVARIANT_FROM_BASES( \
+ public: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_CLASS_INVARIANT_FROM_BASES( \
id, tpl, c) \
/* class invariant (const, volatile, and static) functions must be */ \
/* def here because they need to be public for subcontracting and for */ \
/* class INVARIANT macro will always expand in private context (because */ \
/* INVARIANT macro does not know enclosing scope access level) */ \
- public: CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC(id, tpl) \
- public: CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE(id, \
- tpl) \
- public: CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST(id, tpl)
-
-#define CONTRACT_AUX_CODE_CLASS_TEMPLATE_POSITIONAL_DECL_(template01, tparams) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL(template01, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL(tparams))
+ public: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC(id, tpl) \
+ public: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE( \
+ id, tpl) \
+ public: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST(id, tpl)
+
+#define BOOST_CONTRACT_AUX_CODE_CLASS_TEMPLATE_POSITIONAL_DECL_( \
+ template01, tparams) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL(template01, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL(tparams))
// Precondition: c must only contain positional template params.
-#define CONTRACT_AUX_CLASS_(id, tpl, c, maybe_named_c) \
+#define BOOST_CONTRACT_AUX_CLASS_(id, tpl, c, maybe_named_c) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c))), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c))), \
/* if nested class (has access) then nested concepts, etc private */ \
private: \
) \
/* base class to check concepts */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)), \
- CONTRACT_AUX_CODE_CLASS_CONCEPT \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT \
, \
BOOST_PP_TUPLE_EAT(3) \
)(id, tpl, c) \
/* access level (for nested classes only) */ \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c) \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c))), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_ACCESS(c))), \
: \
) \
/* template params (either positional or named) */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
maybe_named_c)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
maybe_named_c)))), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL \
, \
- CONTRACT_AUX_CODE_CLASS_TEMPLATE_POSITIONAL_DECL_ \
- )(CONTRACT_DETAIL_PP_CLASS_TRAITS_IS_TEMPLATE(c), \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(maybe_named_c)) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TEMPLATE_POSITIONAL_DECL_ \
+ )(BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_IS_TEMPLATE(c), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ maybe_named_c)) \
/* class or struct plus name */ \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_KIND(c) \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
- CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_(c) \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_KIND(c) \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
+ BOOST_CONTRACT_AUX_CLASS_TEMPALTE_SPECIALIZATION_(c) \
/* base classes */ \
- CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_( \
+ BOOST_CONTRACT_AUX_CLASS_BASES_FROM_NILSEQ_( \
(BOOST_PP_NIL) /* nil-seq (handle empty seq)*/ \
/* named params initialization for constructors, must be 1st base */ \
/* because params can be used in constructor-try-block (always */ \
@@ -173,35 +183,43 @@
/* (no typename here, bases always types) */ \
private virtual BOOST_IDENTITY_TYPE(( \
::contract::aux::constructor_inits_eval< \
- CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
+ BOOST_CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
, ::contract::aux::constructor_inits_eval_named_params_args_set\
>)) \
) \
/* enable/disable constructor-try-blocks, must be 2nd base because */ \
/* used when base initializers fail) */ \
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ) \
+ ), \
( /* seq elem */ \
/* private inheritance because impl detail and virtual to */ \
/* avoid that user virtual bases be init before this one */ \
private virtual ::contract::aux::constructor_try_block_guard< \
- CONTRACT_AUX_CLASS_TYPE_(tpl, c) > \
+ BOOST_CONTRACT_AUX_CLASS_TYPE_(tpl, c) > \
) \
) \
/* check concepts (after constructor-try-block just in case of some */ \
/* run-time error even if there should not be any because this */ \
/* class only performs compile-time static checks for concepts) */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)), \
- CONTRACT_AUX_CODE_CLASS_CONCEPT_BASE_SEQ \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_BASE_SEQ \
, \
BOOST_PP_TUPLE_EAT(3) \
)(id, tpl, c) \
/* constr inv/pre must be 1st base so to check constr inv/pre 1st */ \
/* (but after concepts because they are static checks) */ \
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01), \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ), \
/* this also takes the class type so to be a unique base type */ \
/* when also base classes have contracts (virtual bases cannot */ \
/* be used here because they are constructed only one time for */ \
@@ -211,64 +229,76 @@
/* private inheritance because impl detail and virtual to */ \
/* avoid that user virtual bases be init before this one */ \
private virtual ::contract::aux::call_constructor_entry< \
- CONTRACT_AUX_CLASS_TYPE_(tpl, c) > \
+ BOOST_CONTRACT_AUX_CLASS_TYPE_(tpl, c) > \
) \
) \
/* must be before user-defined bases (so if they throw, constructor */ \
/* try-block will catch) */ \
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ) \
+ ), \
( /* seq elem */ \
/* private inheritance because impl detail and virtual to */ \
/* avoid that user virtual bases be init before this one */ \
/* (no typename here, bases always types) */ \
private virtual BOOST_IDENTITY_TYPE(( \
::contract::aux::constructor_inits_eval< \
- CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
+ BOOST_CONTRACT_AUX_CLASS_TYPE_(tpl, c) \
, ::contract::aux::constructor_inits_eval_try_block_set \
>)) \
) \
) \
/* user specified base classes (if any) */ \
- BOOST_PP_LIST_FOR_EACH(CONTRACT_AUX_CODE_BASE_SEQ_R, \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c), \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c)) \
+ BOOST_PP_LIST_FOR_EACH(BOOST_CONTRACT_AUX_CODE_BASE_SEQ_R, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c), \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c)) \
) \
{ /* class definition */ \
/* this class typedef (needed by named params even if no contracts) */ \
- private: typedef CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
- CONTRACT_AUX_CODE_CLASS_TYPE; \
+ private: typedef BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE; \
/* base typedefs for other contract macros (only if contracts) */ \
- BOOST_PP_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
+ BOOST_PP_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ) \
+ ), \
BOOST_PP_REPEAT \
, \
BOOST_PP_TUPLE_EAT(3) \
- )(CONTRACT_CONFIG_INHERITANCE_MAX, CONTRACT_AUX_CODE_BASE_TYPEDEF_Z, c)\
- BOOST_PP_IIF(BOOST_PP_GREATER( \
- BOOST_PP_LIST_SIZE(CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c)), \
- CONTRACT_CONFIG_INHERITANCE_MAX),\
- CONTRACT_AUX_MPL_ASSERT_MSG \
+ )(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPEDEF_Z, c)\
+ BOOST_PP_IIF(BOOST_PP_GREATER(BOOST_PP_LIST_SIZE( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c)), \
+ BOOST_CONTRACT_CONFIG_INHERITANCE_MAX),\
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG \
, \
BOOST_PP_TUPLE_EAT(3) \
)( \
false \
- , ERROR_too_many_base_classes_see_CONTRACT_CONFIG_INHERITANCE_MAX \
+ , \
+ ERROR_too_many_base_classes_see_BOOST_CONTRACT_CONFIG_INHERITANCE_MAX \
, () \
); /* need trailing `;` */ \
/* class invariants */ \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
- CONTRACT_AUX_CLASS_INVARIANTS_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_CONTRACT_AUX_CLASS_INVARIANTS_ \
, \
BOOST_PP_TUPLE_EAT(3) \
)(id, tpl, c) \
/* handle final classes */ \
- CONTRACT_AUX_CODE_CLASS_FINAL(id, tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL(id, tpl, c) \
/* restore class/struct private/public access level */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CLASS_FRONT( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_KIND(c)), \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CLASS_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_KIND(c)), \
private: /* class ... */\
, \
public : /* struct ... */ \
@@ -277,20 +307,22 @@
/* (enum could be used too but struct gives better errors if */ \
/* INVARIANT macro is not used, unnamed struct so it cannot be */ \
/* used by mistake) */ \
- struct /* CONTRACT_CLASS_INVARIANT macro must follow */
+ struct /* BOOST_CONTRACT_CLASS_INVARIANT macro must follow */
// PUBLIC //
-#define CONTRACT_AUX_CLASS(id, tpl, c) \
- CONTRACT_AUX_CLASS_( \
+#define BOOST_CONTRACT_AUX_CLASS(id, tpl, c) \
+ BOOST_CONTRACT_AUX_CLASS_( \
id \
, tpl \
, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c)))), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c)))), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C \
, \
BOOST_PP_TUPLE_REM(1) \
)(c) \
Modified: sandbox/contract/boost/contract/aux_/macro/class_invariant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/class_invariant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/class_invariant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,36 +5,36 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CLASS_INVARIANT_HPP_
-#define CONTRACT_AUX_CLASS_INVARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CLASS_INVARIANT_HPP_
+#define BOOST_CONTRACT_AUX_CLASS_INVARIANT_HPP_
-#include <contract/aux_/macro/code_/class_invariant_const.hpp>
-#include <contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
-#include <contract/aux_/macro/code_/class_invariant_static.hpp>
-#include <contract/detail/preprocessor/traits/class_invariant.hpp> // v
+#include <boost/contract/aux_/macro/code_/class_invariant_const.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_static.hpp>
+#include <boost/contract/detail/preprocessor/traits/class_invariant.hpp> // v
// PRIVATE //
-#define CONTRACT_AUX_CLASS_INVARIANT_(id, tpl, v) \
+#define BOOST_CONTRACT_AUX_CLASS_INVARIANT_(id, tpl, v) \
/* NOTE: subcontracted invariants must be decl by CLASS macro because */ \
/* they always need to be public while this macro expand in private */ \
/* context for class (and in public for struct) so it cannot always */ \
/* decl subcontracted invariants public (following non-subcontracted */ \
/* inv can instead be decl here because they do not need to be public) */ \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC(id, tpl, v) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE(id, tpl, v) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST(id, tpl, v)
-
-#define CONTRACT_AUX_CLASS_INVARIANT_SEQ_(id, tpl, assertion_seq) \
- CONTRACT_AUX_CLASS_INVARIANT_(id, tpl, \
- CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS(assertion_seq))
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC(id, tpl, v) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE(id, tpl, v) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST(id, tpl, v)
+
+#define BOOST_CONTRACT_AUX_CLASS_INVARIANT_SEQ_(id, tpl, assertion_seq) \
+ BOOST_CONTRACT_AUX_CLASS_INVARIANT_(id, tpl, \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS(assertion_seq))
// PUBLIC //
-#define CONTRACT_AUX_CLASS_INVARIANT(id, tpl, assertion_seq) \
- }; /* close `{` entered by the user after CONTRACT_CLASS macro */ \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
- CONTRACT_AUX_CLASS_INVARIANT_SEQ_ \
+#define BOOST_CONTRACT_AUX_CLASS_INVARIANT(id, tpl, assertion_seq) \
+ }; /* close `{` entered by the user after BOOST_CONTRACT_CLASS macro */ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_CONTRACT_AUX_CLASS_INVARIANT_SEQ_ \
, \
BOOST_PP_TUPLE_EAT(3) \
)(id, tpl, assertion_seq)
Modified: sandbox/contract/boost/contract/aux_/macro/code_/assert.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/assert.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/assert.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,24 +5,24 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_ASSERT_HPP_
-#define CONTRACT_AUX_CODE_ASSERT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_ASSERT_HPP_
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_HPP_
-#include <contract/broken.hpp>
-#include <contract/detail/preprocessor/traits/assertion.hpp> // a
-#include <contract/detail/preprocessor/traits/static_assert.hpp>
-#include <contract/detail/preprocessor/traits/const_expr.hpp>
-#include <contract/detail/preprocessor/punctuation/curly.hpp>
-#include <contract/detail/preprocessor/keyword/const.hpp>
-#include <contract/detail/preprocessor/keyword/if.hpp>
-#include <contract/detail/preprocessor/keyword/else.hpp>
-#include <contract/detail/preprocessor/keyword/static.hpp>
+#include <boost/contract/broken.hpp>
+#include <boost/contract/detail/preprocessor/traits/assertion.hpp> // a
+#include <boost/contract/detail/preprocessor/traits/static_assert.hpp>
+#include <boost/contract/detail/preprocessor/traits/const_expr.hpp>
+#include <boost/contract/detail/preprocessor/punctuation/curly.hpp>
+#include <boost/contract/detail/preprocessor/keyword/const.hpp>
+#include <boost/contract/detail/preprocessor/keyword/if.hpp>
+#include <boost/contract/detail/preprocessor/keyword/else.hpp>
+#include <boost/contract/detail/preprocessor/keyword/static.hpp>
#include <boost/preprocessor/selection/max.hpp>
#include <boost/preprocessor/stringize.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_ASSERT_DEF_(d, const_tokens, assertion_token) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, const_tokens, assertion_token) \
(( \
/* the pp-list size or 1 (for just assertion_token) is size is 0 */ \
BOOST_PP_MAX(1, BOOST_PP_LIST_SIZE(const_tokens)) \
@@ -31,31 +31,32 @@
assertion_token \
)))
-#define CONTRACT_AUX_CODE_ASSERT_STATEMENT_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_STATEMENT_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
BOOST_PP_NIL, /* no const tokens */ \
/* following trailing `;` ends statement */ \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a) ; )
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a) ; )
-#define CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, number) \
- CONTRACT_AUX_SYMBOL( (select_assertion_if)(id)(number) )
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, number) \
+ BOOST_CONTRACT_AUX_SYMBOL( (select_assertion_if)(id)(number) )
-#define CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_(d, id, tpl, a, \
underscored_name, if_condition) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d \
/* expand to empty list if condition is not `const ...` */ \
- , CONTRACT_AUX_CODE_CONST_EXPR_TOKENS(id, tpl, bool, \
- CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)), \
+ , BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS(id, tpl, bool, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)), \
if_condition) \
, /* actual code to start if-block */ \
if( \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
if_condition), \
/* call local func def by tokens above */ \
- CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_FUNC_(id, \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER( \
+ a)) \
() /* parenthesis call if-condition local func */ \
, \
if_condition /* just the condition (not const) */ \
@@ -63,75 +64,75 @@
) { /* left-curly starts select assertion if block */ \
)
-#define CONTRACT_AUX_CODE_ASSERT_IF_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_IF_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_(d, id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_IF_CONDITION_(d, id, tpl, a, \
underscored_name, \
/* extract condition from `if( condition )` */ \
BOOST_PP_TUPLE_ELEM(1, 0, \
- CONTRACT_DETAIL_PP_KEYWORD_IF_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))))
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IF_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))))
-#define CONTRACT_AUX_CODE_ASSERT_FUNC_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_FUNC_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
BOOST_PP_NIL, /* no const tokens */ \
assertion_func_call_macro(d, id, tpl, data, a))
-#define CONTRACT_AUX_CODE_ASSERT_STATIC_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_STATIC_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
BOOST_PP_NIL, /* no const tokens */ \
- CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, underscored_name))
+ BOOST_CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, underscored_name))
-#define CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, number) \
- CONTRACT_AUX_SYMBOL( (const_assertion)(id)(number) )
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, number) \
+ BOOST_CONTRACT_AUX_SYMBOL( (const_assertion)(id)(number) )
-#define CONTRACT_AUX_CODE_ASSERT_CONST_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
- CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS(id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS(id, tpl, a, \
underscored_name), \
- CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, \
underscored_name))
-#define CONTRACT_AUX_CODE_ASSERT_BOOL_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_BOOL_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
- CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_DEF_(d, \
BOOST_PP_NIL, /* no const tokens */ \
- CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name))
+ BOOST_CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name))
-#define CONTRACT_AUX_CODE_ASSERT_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_(d, id, tpl, a, \
underscored_name, assertion_func_call_macro, data) \
/* NOTE: The order of this if conditions matters */ \
BOOST_PP_IIF(BOOST_PP_EXPAND( /* EXPAND for MSVC */ \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_IS_STATEMENT(a)), \
- CONTRACT_AUX_CODE_ASSERT_STATEMENT_ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_IF_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
- CONTRACT_AUX_CODE_ASSERT_IF_ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_ELSE_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_IS_STATEMENT(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_STATEMENT_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_IF_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_IF_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_ELSE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
/* select assertion else block (with its left-curly) */ \
((1, ( else { ))) BOOST_PP_TUPLE_EAT(7) \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_IS_RCURLY_MACRO( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_IS_RCURLY_MACRO( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
/* right-curly ends select assertion if and/or else blocks */ \
((1, ( } ))) BOOST_PP_TUPLE_EAT(7) \
, BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a))), \
- CONTRACT_AUX_CODE_ASSERT_FUNC_ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_STATIC_ASSERT_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
- CONTRACT_AUX_CODE_ASSERT_STATIC_ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
- CONTRACT_AUX_CODE_ASSERT_CONST_ \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a))), \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_FUNC_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_STATIC_ASSERT_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_STATIC_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_ \
, \
- CONTRACT_AUX_CODE_ASSERT_BOOL_ \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_BOOL_ \
)))))))(d, id, tpl, a, underscored_name, assertion_func_call_macro, data)
-#define CONTRACT_AUX_CODE_ASSERT_TUPLE_( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_TUPLE_( \
d, id_tpl_name_call_data_code, a) \
( \
BOOST_PP_TUPLE_ELEM(6, 0, id_tpl_name_call_data_code) \
@@ -146,7 +147,7 @@
, \
BOOST_PP_TUPLE_ELEM(6, 5, id_tpl_name_call_data_code) \
/* seq append */ \
- CONTRACT_AUX_CODE_ASSERT_( \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_( \
d \
, BOOST_PP_TUPLE_ELEM(6, 0, id_tpl_name_call_data_code) \
, BOOST_PP_TUPLE_ELEM(6, 1, id_tpl_name_call_data_code) \
@@ -157,19 +158,19 @@
) \
)
-#define CONTRACT_AUX_CODE_ASSERT_FROM_ARRAY_(r, unused, code_array) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_FROM_ARRAY_(r, unused, code_array) \
BOOST_PP_LIST_ENUM_R(r, BOOST_PP_TUPLE_TO_LIST( \
BOOST_PP_ARRAY_SIZE(code_array), BOOST_PP_ARRAY_DATA(code_array)))
-#define CONTRACT_AUX_CODE_ASSERT_FROM_SEQ_(code_seq) \
- BOOST_PP_SEQ_FOR_EACH(CONTRACT_AUX_CODE_ASSERT_FROM_ARRAY_, ~, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_FROM_SEQ_(code_seq) \
+ BOOST_PP_SEQ_FOR_EACH(BOOST_CONTRACT_AUX_CODE_ASSERT_FROM_ARRAY_, ~, \
BOOST_PP_SEQ_TAIL(code_seq))
-#define CONTRACT_AUX_CODE_ASSERT_GET_(code_seq) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_GET_(code_seq) \
BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(code_seq), 1), \
BOOST_PP_TUPLE_EAT(1) /* no assertion func definition code */ \
, \
- CONTRACT_AUX_CODE_ASSERT_FROM_SEQ_ \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_FROM_SEQ_ \
)(code_seq)
// PUBLIC //
@@ -177,7 +178,7 @@
// NOTE: underscored_name is kept for all these macros if it is actually only
// used by static assertion (it can be used with number as unique ID if needed).
-#define CONTRACT_AUX_CODE_ASSERT_CONDITION( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_CONDITION( \
condition, underscored_name, number, print_code) \
if(!(condition)) { /* no bool conversion, use more general operator! */ \
throw ::contract::broken(__FILE__, __LINE__, \
@@ -185,46 +186,46 @@
number); \
}
-#define CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name) \
- CONTRACT_AUX_CODE_ASSERT_CONDITION( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a), \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONDITION( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a), \
underscored_name, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))
-#define CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS( \
id, tpl, a, underscored_name) \
- CONTRACT_AUX_CODE_CONST_EXPR_TOKENS( \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS( \
/* unique symbol using both id and number to avoid name clashes */ \
- BOOST_PP_SEQ_CAT( (id)(CONTRACT_AUX_SYMBOL_INFIX) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) ), \
+ BOOST_PP_SEQ_CAT( (id)(BOOST_CONTRACT_AUX_SYMBOL_INFIX) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) ), \
tpl, bool, \
- CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)), \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))
-
-#define CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, underscored_name) \
- CONTRACT_AUX_CODE_ASSERT_CONDITION( \
- CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)), \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))
+
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, underscored_name) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONDITION( \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_LOCAL_FUNC_(id, \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) \
() /* parenthesis to call local function */, \
underscored_name, \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
- CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
- CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))))
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))))
-#define CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, underscored_name) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, underscored_name) \
{ \
/* within a block {} to avoid name clashes when expanding multiple */ \
/* MPL_ASSERT on same line (i.e., from same contract macro) */ \
- CONTRACT_AUX_MPL_ASSERT_MSG( \
- CONTRACT_DETAIL_PP_STATIC_ASSERT_TRAITS_CONDITION( \
- CONTRACT_DETAIL_PP_STATIC_ASSERT_TRAITS( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
+ BOOST_CONTRACT_DETAIL_PP_STATIC_ASSERT_TRAITS_CONDITION( \
+ BOOST_CONTRACT_DETAIL_PP_STATIC_ASSERT_TRAITS( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a))) \
, BOOST_PP_SEQ_CAT((ERROR_statically_checked_)\
(underscored_name)(_number_) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) \
(_failed_at_line_)(id)) \
/* ideally, I'd print the static assertion message msg here */ \
/* but a string cannot be printed as a type in C++03... */ \
@@ -234,13 +235,13 @@
// Where `assertion_func_call_macro(d, id, tpl, data, a)` expands to
// assertion function call (single token, func call can be wrapped within ()).
-#define CONTRACT_AUX_CODE_ASSERT(id, tpl, underscored_name, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, underscored_name, \
assertion_func_call_macro, data, assertions) \
/* can't use LIST_FOR_EACH here instead of FOLD_LEFT because it doesn't */ \
/* reenter correctly on MSVC (not even if FOR_EACH_R is used) because */ \
/* many of the alg used to expand the assert func also use LIST_FOR_EACH */\
- CONTRACT_AUX_CODE_ASSERT_GET_(BOOST_PP_TUPLE_ELEM(6, 5, \
- BOOST_PP_LIST_FOLD_LEFT(CONTRACT_AUX_CODE_ASSERT_TUPLE_, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_GET_(BOOST_PP_TUPLE_ELEM(6, 5, \
+ BOOST_PP_LIST_FOLD_LEFT(BOOST_CONTRACT_AUX_CODE_ASSERT_TUPLE_, \
( id, tpl, underscored_name, \
/* code in seq of array to handle unwrapped commas */ \
assertion_func_call_macro, data, ((1, (;))) ), \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/assertion_func.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/assertion_func.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/assertion_func.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,18 +5,18 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_ASSERTION_FUNC_HPP_
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_HPP_
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_HPP_
-#include <contract/aux_/macro/code_/assert.hpp>
-#include <contract/detail/preprocessor/traits/assertion.hpp> // a
-#include <contract/detail/preprocessor/keyword/const.hpp>
-#include <contract/detail/preprocessor/keyword/static.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/detail/preprocessor/traits/assertion.hpp> // a
+#include <boost/contract/detail/preprocessor/keyword/const.hpp>
+#include <boost/contract/detail/preprocessor/keyword/static.hpp>
#include <boost/mpl/bool.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_(d, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_(d, \
false_decl_tokens, true_decl_tokens, \
true_def_statements_token, true_def_const_tokens, true_def_check_token)\
(( /* seq of array to handle unwrapped commas */ \
@@ -40,74 +40,78 @@
} \
)))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENT_(d, number_code, a) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENT_( \
+ d, number_code, a) \
( \
BOOST_PP_TUPLE_ELEM(2, 0, number_code) /* code so far */ \
, \
BOOST_PP_TUPLE_ELEM(2, 1, number_code) /* code so far */ \
/* append instruction code (if apply) */ \
BOOST_PP_EXPR_IIF(BOOST_PP_BITAND( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_IS_STATEMENT(a), \
- BOOST_PP_LESS(CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_IS_STATEMENT(a), \
+ BOOST_PP_LESS( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), \
BOOST_PP_TUPLE_ELEM(2, 0, number_code))), \
/* NOTE: if this is an assertion statement (using, etc) with a */ \
/* number smaller (<) than spec number, then the statement */ \
/* preceded the assertion being coded (i.e., with the spec */ \
/* number) so its scope affects the coded assertion and the */ \
/* statement is programmed into the assertion function */ \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a) \
; /* trailing `;` ends statement */ \
) \
)
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENTS_( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENTS_( \
d, id, tpl, a, assertions) \
BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LIST_FOLD_LEFT_ ## d( \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENT_, \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), ;), assertions))
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENT_, \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a), ;), \
+ assertions))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions, \
true_def_const_tokens, true_def_check_token) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_(d \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_(d \
, decl_tokens_macro(d, id, tpl, data, \
::boost::mpl::false_ const&, a) \
, decl_tokens_macro(d, id, tpl, data, \
::boost::mpl::true_ const&, a) \
- , CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENTS_(d, id, tpl, a, \
- assertions) \
+ , BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_PREV_STATEMENTS_( \
+ d, id, tpl, a, assertions) \
, true_def_const_tokens \
, true_def_check_token \
)
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_CONST_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_CONST_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions, \
/* tokens that define the const-assertion local function */ \
- CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS(id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST_DEF_TOKENS(id, tpl, a, \
underscored_name), \
/* single token checking const assertion (calling loc func) */ \
- CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONST(id, tpl, a, \
underscored_name))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_STATIC_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_STATIC_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions, \
BOOST_PP_NIL, /* no const tokens (this is not const-assertion */ \
/* single token checking static assertion */ \
- CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, underscored_name))
+ BOOST_CONTRACT_AUX_CODE_ASSERT_STATIC(id, tpl, a, \
+ underscored_name))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_BOOL_(d, id, tpl, a, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_BOOL_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_REQUIREMENT_(d, id, tpl, a, \
underscored_name, decl_tokens_macro, data, assertions, \
BOOST_PP_NIL, /* no const tokens (this is not const-assertion */ \
/* single token checking bool assertion */ \
- CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name))
+ BOOST_CONTRACT_AUX_CODE_ASSERT_BOOL(id, tpl, a, underscored_name))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_( \
d, id_tpl_name_decl_data_assertions_code, a) \
( \
BOOST_PP_TUPLE_ELEM(7, 0, id_tpl_name_decl_data_assertions_code) \
@@ -125,19 +129,20 @@
BOOST_PP_TUPLE_ELEM(7, 6, id_tpl_name_decl_data_assertions_code) \
/* append seq */ \
BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a))), \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a))), \
/* NOTE: assertion functions are used for assertion requirements */\
/* so the assertion compilation is skipped when the assertion */ \
/* requirements are not met (because the assertion func is a tpl)*/\
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_STATIC_ASSERT_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_STATIC_ \
+ BOOST_PP_IIF( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_STATIC_ASSERT_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_STATIC_ \
, \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_CONST_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_INSTRUCTION(a)), \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_CONST_ \
, \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_BOOL_ \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_BOOL_ \
)) \
, \
BOOST_PP_TUPLE_EAT(8) /* skip this assertion (no requirement) */\
@@ -153,33 +158,34 @@
) \
)
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_ARRAY_( \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_ARRAY_( \
r, unused, code_array) \
BOOST_PP_LIST_ENUM_R(r, BOOST_PP_TUPLE_TO_LIST( \
BOOST_PP_ARRAY_SIZE(code_array), BOOST_PP_ARRAY_DATA(code_array)))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_SEQ_(code_seq) \
- BOOST_PP_SEQ_FOR_EACH(CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_ARRAY_, ~, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_SEQ_(code_seq) \
+ BOOST_PP_SEQ_FOR_EACH( \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_ARRAY_, ~, \
BOOST_PP_SEQ_TAIL(code_seq))
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_GET_(code_seq) \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_GET_(code_seq) \
BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(code_seq), 1), \
BOOST_PP_TUPLE_EAT(1) /* no assertion func definition code */ \
, \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_SEQ_ \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_FROM_SEQ_ \
)(code_seq)
// PUBLIC //
// Where `decl_tokens_macro(d, id, tpl, data, dispatch_param, a)`
// expands to token list (data is optional, pass ~ or similar if not needed).
-#define CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
+#define BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
underscored_name, decl_tokens_macro, data, assertions) \
/* can't use LIST_FOR_EACH here instead of FOLD_LEFT because it doesn't */ \
/* reenter correctly on MSVC (not even if FOR_EACH_R is used) because */ \
/* many of the alg used to expand the assert func also use LIST_FOR_EACH */\
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_GET_(BOOST_PP_TUPLE_ELEM(7, 6, \
- BOOST_PP_LIST_FOLD_LEFT(CONTRACT_AUX_CODE_ASSERTION_FUNC_, \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF_GET_(BOOST_PP_TUPLE_ELEM(7, 6, \
+ BOOST_PP_LIST_FOLD_LEFT(BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_, \
/* code in seq of array to handle unwrapped commas */ \
( id, tpl, underscored_name, decl_tokens_macro, \
data, assertions, ((1, (;))) ), \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/base.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/base.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/base.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_BASE_HPP_
-#define CONTRACT_AUX_CODE_BASE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_BASE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_BASE_HPP_
#include <boost/mpl/identity.hpp>
@@ -14,31 +14,32 @@
// Expand to void_base if should not subcontract from base n-th.
// Precondition: n < size(bases).
-#define CONTRACT_AUX_CODE_BASE_SUBCONTRACT_(z, n, c) \
+#define BOOST_CONTRACT_AUX_CODE_BASE_SUBBOOST_CONTRACT_(z, n, c) \
/* subcontract from all specified bases (valid n) as per [N1962] policy */ \
/* (A++ policy would instead be to not subcontract from private bases */ \
/* and subcontract pre and post but not inv from protected bases) */ \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(BOOST_PP_LIST_AT( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c), n)))
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE( \
+ BOOST_PP_LIST_AT(BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c), n)\
+ ))
-#define CONTRACT_AUX_CODE_BASE_SELECT_(z, n, c) \
+#define BOOST_CONTRACT_AUX_CODE_BASE_SELECT_(z, n, c) \
BOOST_PP_IIF(BOOST_PP_LESS(n, BOOST_PP_LIST_SIZE( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c))), \
- CONTRACT_AUX_CODE_BASE_SUBCONTRACT_ \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c))), \
+ BOOST_CONTRACT_AUX_CODE_BASE_SUBBOOST_CONTRACT_ \
, \
- CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
BOOST_PP_TUPLE_EAT(3) \
)(z, n, c)
// PUBLIC //
-#define CONTRACT_AUX_CODE_BASE_TYPE(n) \
- CONTRACT_AUX_SYMBOL( (base)(n) )
+#define BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ BOOST_CONTRACT_AUX_SYMBOL( (base)(n) )
-#define CONTRACT_AUX_CODE_BASE_SEQ_R(r, typename_keyword, b) \
+#define BOOST_CONTRACT_AUX_CODE_BASE_SEQ_R(r, typename_keyword, b) \
( /* seq elem */ \
- CONTRACT_DETAIL_PP_BASE_TRAITS_ACCESS(b) \
- CONTRACT_DETAIL_PP_BASE_TRAITS_VIRTUAL(b) \
+ BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_ACCESS(b) \
+ BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_VIRTUAL(b) \
/* no outer typename here because base list requires no typename */ \
/* (bases known to be types), IDENTITY with add/remove reference */ \
/* to handle unwrapped commas */ \
@@ -48,16 +49,16 @@
typename_keyword \
::boost::add_reference< \
BOOST_PP_ARRAY_ENUM( \
- CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(b)) \
+ BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(b)) \
>::type \
)) \
>::type \
)
-#define CONTRACT_AUX_CODE_BASE_TYPEDEF_Z(z, n, c) \
+#define BOOST_CONTRACT_AUX_CODE_BASE_TYPEDEF_Z(z, n, c) \
typedef \
- CONTRACT_AUX_CODE_BASE_SELECT_(z, n, c) \
- CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ BOOST_CONTRACT_AUX_CODE_BASE_SELECT_(z, n, c) \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
;
#endif // #include
Modified: sandbox/contract/boost/contract/aux_/macro/code_/body.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/body.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/body.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,28 +5,28 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_BODY_HPP_
-#define CONTRACT_AUX_CODE_BODY_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_BODY_HPP_
+#define BOOST_CONTRACT_AUX_CODE_BODY_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/macro/code_/func.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/macro/code_/func.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
// PUBLIC //
-#define CONTRACT_AUX_CODE_BODY_DECL(id, tpl, k, f, body_func) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+#define BOOST_CONTRACT_AUX_CODE_BODY_DECL(id, tpl, k, f, body_func) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
/* NOTE: virtual func might need (and will need if pure virtual) */ \
/* override the body so the body must keep func orig access level */ \
/* furthermore body needs to be called directly when derived class */ \
/* calls its base class function */ \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f) : BOOST_PP_EMPTY \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f) : BOOST_PP_EMPTY \
, /* else, free function */ \
/* NOTE: it is not possible to decl free func body static here */ \
/* otherwise body def cannot be separated from its decl */ \
BOOST_PP_EMPTY /* do nothing */ \
)() \
- CONTRACT_AUX_CODE_FUNC_NAMED_DECL( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_NAMED_DECL( \
id, tpl, k, f, body_func \
/* body must have same access level as contracted function to */ \
/* properly allow to define pure virtual functions */ \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,17 +5,17 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_HPP_
-#define CONTRACT_AUX_CODE_CLASS_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_HPP_
-#include <contract/aux_/config.hpp>
+#include <boost/contract/aux_/config.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/logical/bitand.hpp>
#include <boost/preprocessor/list/adt.hpp>
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_TYPE \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
ERROR_missing_class_contract /* name also used to report error */
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class_concept.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class_concept.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class_concept.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,38 +5,38 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_CONCEPT_HPP_
-#define CONTRACT_AUX_CODE_CLASS_CONCEPT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_HPP_
-#include <contract/aux_/concept_assert.hpp>
+#include <boost/contract/aux_/concept_assert.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_CONCEPT_ASSERT_(r, id, i, concept) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_ASSERT_(r, id, i, concept) \
/* can expand multiple of this macros on same line because of id */ \
- CONTRACT_AUX_CONCEPT_ASSERT( (BOOST_PP_ARRAY_ENUM(concept)), \
+ BOOST_CONTRACT_AUX_CONCEPT_ASSERT( (BOOST_PP_ARRAY_ENUM(concept)), \
/* pp-cat infix because Boost.ConceptCheck will cat it again */ \
- CONTRACT_AUX_SYMBOL( (concept_check)(id)(i) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( (concept_check)(id)(i) ) \
) ; /* `;` ends concept assertion */
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
- CONTRACT_AUX_SYMBOL( (CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c)) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
+ BOOST_CONTRACT_AUX_SYMBOL( (BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_NAME(c)) \
(check_class_concepts) (id) )
-#define CONTRACT_AUX_CODE_CLASS_CONCEPT(id, tpl, c) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_IS_TEMPLATE(c), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))) \
- struct CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT(id, tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_IS_TEMPLATE(c), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))) \
+ struct BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
{ \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_CLASS_CONCEPT_ASSERT_, id, \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_ASSERT_,\
+ id, BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_CONCEPTS(c)) \
};
-#define CONTRACT_AUX_CODE_CLASS_CONCEPT_BASE_SEQ(id, tpl, c) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_BASE_SEQ(id, tpl, c) \
( /* seq elem */ \
/* NOTE: inheritance is private because impl detail and it has to */ \
/* be virtual because otherwise eventual other virtual bases will */ \
@@ -47,15 +47,14 @@
/* (but no outer typename in base class list) plus add/remove ref */ \
/* to handle abstract types */ \
::boost::remove_reference< \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
BOOST_IDENTITY_TYPE(( \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
::boost::add_reference< \
- CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
- c))) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_CONCEPT_TYPE(id, c) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c))) \
>::type \
)) \
>::type \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class_final.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class_final.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class_final.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,58 +5,59 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_FINAL_HPP_
-#define CONTRACT_AUX_CODE_CLASS_FINAL_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_HPP_
-#include <contract/aux_/has_xxx_member_function.hpp>
-#include <contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/has_xxx_member_function.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_ \
- CONTRACT_AUX_SYMBOL( (final_class_tag) ) /* no class name, id, etc */
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_ \
+ BOOST_CONTRACT_AUX_SYMBOL( (final_class_tag) ) /* no class name, id, etc */
-#define CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_(name) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_(name) \
/* NOTE: final classes decl this member func tag then derived classes */ \
/* statically assert (using introspection) that none of their base */ \
/* classes have the final tag member func (i.e., they were decl final) */ \
void name ( )
-#define CONTRACT_AUX_CODE_CLASS_FINAL_TAG_DECL_ \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_DECL_ \
public: /* must be public to be accessed from introspection metafunc */ \
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_( \
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_) \
; /* no tag func definition needed for SFINAE so `;` */
-#define CONTRACT_AUX_CODE_CLASS_FINAL_TAG_(c) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_(c) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_FINAL(c))), \
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_DECL_ \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_FINAL(c))), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_DECL_ \
)
-#define CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_BASE_(r, id_tpl_c, i, b) \
- CONTRACT_AUX_MPL_ASSERT_MSG( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_BASE_(r, id_tpl_c, i, b) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
/* use introspection metafunc has_... decl below in this file */ \
(!::contract::aux::has_final_class_tag< \
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_SIGNATURE_( \
( \
/* no outer typename here because constructor */ \
/* requires no typename (known to be a type), IDENTITY */ \
/* with add/remove reference to handle unwrapped commas */ \
::boost::remove_reference< \
- CONTRACT_AUX_CODE_CLASS_TYPENAME( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME( \
BOOST_PP_TUPLE_ELEM(3, 1, id_tpl_c), \
BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_c)) \
BOOST_IDENTITY_TYPE(( \
- CONTRACT_AUX_CODE_CLASS_TYPENAME( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME( \
BOOST_PP_TUPLE_ELEM(3, 1, id_tpl_c), \
BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_c)) \
::boost::add_reference< \
BOOST_PP_ARRAY_ENUM( \
- CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(b))\
+ BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE( \
+ b))\
>::type \
)) \
>::type \
@@ -69,26 +70,26 @@
(BOOST_PP_TUPLE_ELEM(3, 0, id_tpl_c)) ) \
, (types< \
/* keep eventual typename prefix here and no need for IDENTITY */ \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(b)) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_BASE_TRAITS_TYPE(b)) \
>) \
); /* MPL assert requires trailing `;` */
-#define CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_(id, tpl, c) \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_BASE_, \
- (id, tpl, c), CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c))
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_(id, tpl, c) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_BASE_, \
+ (id, tpl, c), BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_BASES(c))
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_FINAL(id, tpl, c) \
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_(c) \
- CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_(id, tpl, c)
+#define BOOST_CONTRACT_AUX_CODE_CLASS_FINAL(id, tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_(c) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_CHECK_(id, tpl, c)
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
-CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(has_final_class_tag,
- CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_)
+BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(has_final_class_tag,
+ BOOST_CONTRACT_AUX_CODE_CLASS_FINAL_TAG_FUNC_)
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,34 +5,36 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_HPP_
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/subcontract/has_class_invariant.hpp>
-#include <contract/aux_/subcontract/class_invariant.hpp>
-#include <contract/aux_/subcontract/static_class_invariant.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
-#include <contract/detail/preprocessor/traits/class_invariant.hpp> // v
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/subboost/contract/has_class_invariant.hpp>
+#include <boost/contract/aux_/subboost/contract/class_invariant.hpp>
+#include <boost/contract/aux_/subboost/contract/static_class_invariant.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/detail/preprocessor/traits/class_invariant.hpp> // v
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_TYPE_(z, n, id) \
- , CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n)
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_TYPE_( \
+ z, n, id) \
+ , BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_(z, n, id) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_(z, n, id) \
, dynamic_cast< \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n) const* const \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n) \
+ const* const \
>(this) \
- , & CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n) :: \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_FUNC \
+ , & BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n) :: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_FUNC
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_(id, tpl, \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_(id, tpl, \
function_name, is_assertion, dispatch_param) \
( /* pp-list */ \
/* unused tparam to delay assertion-func compilation */ \
BOOST_PP_EXPR_IIF(is_assertion, \
- template< typename CONTRACT_AUX_SYMBOL( (Unused)(id) ) > \
+ template< typename BOOST_CONTRACT_AUX_SYMBOL( (Unused)(id) ) > \
) \
void function_name( \
/* extra param for type-dispatching based on ass. requirements */ \
@@ -43,19 +45,20 @@
BOOST_PP_NIL \
)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_(id, a) \
- CONTRACT_AUX_SYMBOL( (class_invariant_assertion) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_SYMBOL( (class_invariant_assertion) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_DECL_TOKENS_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_DECL_TOKENS_( \
d, id, tpl, unused, dispatch_param, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_(id, tpl, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_(id, a), \
- 1 /* yes for assertion */, dispatch_param)
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_( \
+ id, a), 1 /* yes for assertion */, dispatch_param)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_CALL_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_CALL_( \
d, id, tpl, unused, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_(id, a) \
<void> /* unused tparam to delay assertion func compilation */ \
( \
BOOST_PP_EXPR_IIF(tpl, typename) \
@@ -63,54 +66,61 @@
/* requirements-- mpl::true_ iff assertion requirements */ \
/* are met at compile-time */ \
::boost::mpl::bool_< \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
>::type() \
);
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC \
/* func name also used to report error when INVARIANT macro is missing */ \
ERROR_missing_class_invariant
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_FUNC \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_FUNC \
/* NOTE: must use this exact func name for introspection check to work */ \
- CONTRACT_AUX_CODE_SUBCONTRACT_HAS_CLASS_INVARIANT_FUNC
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_HAS_CLASS_INVARIANT_FUNC
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST(id, tpl) \
- void CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_FUNC() const { \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST( \
+ id, tpl) \
+ void \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_FUNC ( ) \
+ const \
+ { \
::contract::aux::subcontract_class_invariant< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_TYPE_, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_TYPE_, \
id) \
>( \
this \
- , & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_, id) \
+ , & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_COMMA_BASE_, \
+ id) \
); \
}
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST(id, tpl, v) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_DECL_TOKENS_, \
- ~, CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST(v)) \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_( \
- id, tpl, CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC, \
- 0 /* not for assertion */, ~ /* no dispatch param */)) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST(id, tpl, v) \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, class_invariant, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_DECL_TOKENS_, \
+ ~, BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST(v)) \
+ BOOST_PP_LIST_ENUM( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_DECL_TOKENS_( \
+ id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC, \
+ 0 /* not for assertion */, ~ /* no dispatch param */)) \
{ \
/* first always check static class invariants */ \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC(); \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC(); \
/* then check dynamic class invariants (in AND) */ \
- CONTRACT_AUX_CODE_ASSERT(id, tpl, class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_CALL_, \
- ~, CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST(v)) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, class_invariant, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_ASSERTION_FUNC_CALL_, \
+ ~, BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST(v)) \
/* then check volatile class inv but only if diff from dyn (in AND) */ \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_VOLATILE(v)), \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_VOLATILE(v)), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
false /* don't check static class inv (again) */>(); \
) \
}
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,51 +5,54 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_HPP_
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/subcontract/class_invariant.hpp>
-#include <contract/aux_/subcontract/static_class_invariant.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/subboost/contract/class_invariant.hpp>
+#include <boost/contract/aux_/subboost/contract/static_class_invariant.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_TYPE_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_TYPE_( \
z, n, id) \
- , CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n)
+ , BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_( \
z, n, id_tpl) \
, dynamic_cast< \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(BOOST_PP_TUPLE_ELEM( \
- 2, 0, id_tpl), n) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
+ BOOST_PP_TUPLE_ELEM(2, 0, id_tpl), n) \
const volatile* const \
>(this) \
- , & CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(BOOST_PP_TUPLE_ELEM( \
- 2, 0, id_tpl), n) :: \
+ , & BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
+ BOOST_PP_TUPLE_ELEM(2, 0, id_tpl), n) :: \
BOOST_PP_EXPR_IIF(BOOST_PP_TUPLE_ELEM(2, 1, id_tpl), \
template \
) \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
- void> /* extra template param to delay compilation */
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC\
+ <void> /* extra template param to delay compilation */
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_(v) \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_(v) \
/* POLICY: by default, volatile class inv same as dyn if not specified */ \
/* (this is likely what the user would want but it could generate */ \
/* compile-time error because dyn inv use non volatile obj in which */ \
/* case user will specify volatile inv */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_HAS_CONST_VOLATILE( \
- v), /* has_volatile iff volatile are specified */ \
- CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST_VOLATILE \
+ BOOST_PP_IIF( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_HAS_CONST_VOLATILE(\
+ v), /* has_volatile iff volatile are specified */ \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST_VOLATILE \
, \
- CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_CONST \
)(v)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_(id) \
- CONTRACT_AUX_SYMBOL( (check_static_class_invariant)(id) )
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (check_static_class_invariant)(id) )
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
id, tpl, function_name, is_assertion, dispatch_param) \
( /* pp-list */ \
/* NOTE: this tparam is also used to disable compilation */ \
@@ -58,7 +61,7 @@
/* are defined to match the normal class inv by default and that */ \
/* errors at compile-time but only when volatile member are used */ \
template< bool \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_(id) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_(id) \
> \
void function_name( \
/* extra param for type-dispatching based on ass. requirements */ \
@@ -69,23 +72,25 @@
BOOST_PP_NIL \
)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_( \
- id, a) \
- CONTRACT_AUX_SYMBOL( (volatile_class_invariant_assertion) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_SYMBOL( (volatile_class_invariant_assertion) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
#define \
-CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_DECL_TOKENS_( \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_DECL_TOKENS_( \
d, id, tpl, unused, dispatch_param, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
id, tpl, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_( \
id, a), \
1 /* yes for assertion */, dispatch_param)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_CALL_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_CALL_( \
d, id, tpl, unused, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_( \
+ id, a) \
<false> /* unused tparam to delay assertion func compilation */ \
( \
BOOST_PP_EXPR_IIF(tpl, typename) \
@@ -93,66 +98,73 @@
/* requirements-- mpl::true_ iff assertion requirements */ \
/* are met at compile-time */ \
::boost::mpl::bool_< \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
>::type() \
);
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC \
- CONTRACT_AUX_SYMBOL( (volatile_class_invariant) )
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC \
+ BOOST_CONTRACT_AUX_SYMBOL( (volatile_class_invariant) )
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC \
- CONTRACT_AUX_SYMBOL( (subcontracted_volatile_class_invariant) )
+#define \
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC\
+ BOOST_CONTRACT_AUX_SYMBOL( (subcontracted_volatile_class_invariant) )
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE( \
+#define \
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE( \
id, tpl) \
/* NOTE: volatile subcontracted class invariants must be a template so */ \
/* to not compile unless volatile member actually contracted so to */ \
/* avoid volatile qualifier errors until because volatile class */ \
/* invariants defaulted to dynamic ones if not specified (so tpl = 1 */ \
/* forced here) */ \
- template< typename CONTRACT_AUX_SYMBOL( (Unused) ) > /* always template */ \
- void CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC() \
- const volatile { \
+ template< typename BOOST_CONTRACT_AUX_SYMBOL( (Unused) ) > /* always tpl */\
+ void \
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC\
+ ( ) \
+ const volatile \
+ { \
::contract::aux::subcontract_class_invariant< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_TYPE_, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_TYPE_, \
id) \
>( \
this \
- , & CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ , & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
template /* always a template (tpl = 1 forced) */ \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
true /* check static class inv */> \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_, \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_COMMA_BASE_, \
(id, 1 /* always a template (tpl = 1 forced) */)) \
); \
}
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE(id, tpl, v) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE(id, tpl, v) \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
volatile_class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_DECL_TOKENS_,\
- ~, CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_(v)) \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_DECL_TOKENS_,\
+ ~, BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_( \
+ v)) \
BOOST_PP_LIST_ENUM( \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_DECL_TOKENS_( \
id, tpl, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_FUNC, \
0 /* not for assertion */, ~ /* no dispatch param */)) \
{ \
/* first always check static class invariants (bool var is used */ \
/* to not check static inv twice when dyn inv call volatile inv) */ \
- if(CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_( \
- id)) { \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC(); \
+ if( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_CHECK_STATIC_VAR_(id))\
+ { \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC(); \
} \
/* then check volatile class invariants (in AND with static) */ \
- CONTRACT_AUX_CODE_ASSERT(id, tpl, volatile_class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_CALL_, \
- ~, CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_(v))\
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, volatile_class_invariant, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_ASSERTION_FUNC_CALL_, \
+ ~, BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_VOLATILE_TRAITS_(v))\
}
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_static.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_static.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/class_invariant_static.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,30 +5,31 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_HPP_
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/subcontract/class_invariant.hpp>
-#include <contract/aux_/subcontract/static_class_invariant.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/subboost/contract/class_invariant.hpp>
+#include <boost/contract/aux_/subboost/contract/static_class_invariant.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_TYPE_(z, n, id) \
- , CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n)
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_TYPE_( \
+ z, n, id) \
+ , BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_FUNC_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_FUNC_( \
z, n, id) \
- , & CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n) :: \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC_FUNC
+ , & BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n) :: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC_FUNC
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_( \
id, tpl, function_name, is_assertion, dispatch_param) \
( /* pp-list */ \
/* unused tparam to delay assertion-func compilation */ \
BOOST_PP_EXPR_IIF(is_assertion, \
- template< typename CONTRACT_AUX_SYMBOL( (Unused)(id) ) > \
+ template< typename BOOST_CONTRACT_AUX_SYMBOL( (Unused)(id) ) > \
) \
static void function_name( \
/* extra param for type-dispatching based on ass. requirements */ \
@@ -39,20 +40,20 @@
BOOST_PP_NIL \
)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_(id, a) \
- CONTRACT_AUX_SYMBOL( (static_class_invariant_assertion) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_SYMBOL( (static_class_invariant_assertion) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_DECL_TOKENS_(\
+#define \
+BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_DECL_TOKENS_(\
d, id, tpl, unused, dispatch_param, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_( \
- id, tpl, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_(a, id), \
- 1 /* yes for assertion */, dispatch_param)
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_( \
+ a, id), 1 /* yes for assertion */, dispatch_param)
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_CALL_( \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_CALL_( \
d, id, tpl, unused, a) \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_(id, a) \
<void> /* unused tparam to delay assertion func compilation */ \
( \
BOOST_PP_EXPR_IIF(tpl, typename) \
@@ -60,49 +61,53 @@
/* requirements-- mpl::true_ iff assertion requirements */ \
/* are met at compile-time */ \
::boost::mpl::bool_< \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
>::type() \
);
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC \
- CONTRACT_AUX_SYMBOL( (static_class_invariant) )
-
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC_FUNC \
- CONTRACT_AUX_SYMBOL( (subcontracted_static_class_invariant) )
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC \
+ BOOST_CONTRACT_AUX_SYMBOL( (static_class_invariant) )
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC(id, tpl) \
- static void CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC_FUNC() \
+#define \
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC_FUNC \
+ BOOST_CONTRACT_AUX_SYMBOL( (subcontracted_static_class_invariant) )
+
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC( \
+ id, tpl) \
+ static void \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC_FUNC ( )\
{ \
::contract::aux::subcontract_static_class_invariant< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_TYPE_, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_TYPE_, \
id) \
>( \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_FUNC_, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_COMMA_BASE_FUNC_, \
id) \
); \
}
-#define CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC(id, tpl, v) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
+#define BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC(id, tpl, v) \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, \
static_class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_DECL_TOKENS_,\
- ~, CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_STATIC(v)) \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_( \
- id, tpl, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC, \
- 0 /* not for assertion */, ~ /* no dispatch param */)) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_DECL_TOKENS_,\
+ ~, BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_STATIC(v)) \
+ BOOST_PP_LIST_ENUM( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_DECL_TOKENS_( \
+ id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC, \
+ 0 /* not for assertion */, ~ /* no dispatch param */)) \
{ \
- CONTRACT_AUX_CODE_ASSERT(id, tpl, static_class_invariant, \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_CALL_, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, static_class_invariant, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_ASSERTION_FUNC_CALL_, \
/* POLICY: by default, no static class inv if not specified */ \
- ~, CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_STATIC(v)) \
+ ~, BOOST_CONTRACT_DETAIL_PP_CLASS_INVARIANT_TRAITS_STATIC(v)) \
}
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/const_expr.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/const_expr.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/const_expr.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,11 +5,11 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CONST_EXPR_HPP_
-#define CONTRACT_AUX_CODE_CONST_EXPR_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CONST_EXPR_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_HPP_
-#include <contract/detail/preprocessor/traits/const_expr.hpp>
-#include <contract/detail/preprocessor/keyword/const.hpp>
+#include <boost/contract/detail/preprocessor/traits/const_expr.hpp>
+#include <boost/contract/detail/preprocessor/keyword/const.hpp>
#include <boost/local_function.hpp>
#include <boost/preprocessor/arithmetic/mul.hpp>
@@ -22,32 +22,33 @@
// It /seems/ that fixing this would ultimately require a better overload of
// Boost.ScopeExit deref function template but that's outside the scope of this
// library.
-#define CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_COMMAS_( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_COMMAS_( \
r, tpl, var_traits) \
( \
BOOST_PP_EXPR_IIF(tpl, typename) \
BOOST_IDENTITY_TYPE(( /* handles unwrapped commas */ \
BOOST_PP_ARRAY_ENUM( \
- CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
var_traits)) \
)) \
)
// Precondition: SIZE(TYPE(var_traits)) > 1.
-#define CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_NO_COMMA_( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_NO_COMMA_( \
r, tpl, var_traits) \
( \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
- var_traits)) \
+ BOOST_PP_ARRAY_ENUM( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
+ var_traits)) \
)
// Precondition: SIZE(TYPE(var_traits)) > 0.
-#define CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_( \
r, tpl, var_traits) \
BOOST_PP_IIF(BOOST_PP_EQUAL(1, BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
var_traits))), \
- CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_NO_COMMA_ \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_NO_COMMA_ \
, \
/* NOTE: unfortunately, to handle commas we need to used */ \
/* BOOST_IDENTITY_TYPE which seems to confuse compilers when */ \
@@ -55,36 +56,38 @@
/* case to not use IDENTITY_TYPE to not confuse compilers if */ \
/* no commas and explicit types (but compilers will still be */ \
/* confused when commas and explicit types) */ \
- CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_COMMAS_ \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_COMMAS_ \
)(r, tpl, var_traits)
-#define CONTRACT_AUX_CODE_CONST_EXPR_BIND_SEQ_(r, tpl, var_traits) \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_SEQ_(r, tpl, var_traits) \
( /* local function bind syntax `(const bind[(var_type)]& var_name)...` */ \
const /* for const-expression const-correctness */ \
bind /* capture variable in scope */ \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( /* if explicit variable type */ \
- CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE(var_traits)), \
- CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_ \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_TYPE( \
+ var_traits)), \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_VAR_EXPLICT_TYPE_ \
, \
BOOST_PP_TUPLE_EAT(3) /* type implicitly deduced with Typeof */ \
)(r, tpl, var_traits) \
& /* ref so no copy constructor is required */ \
- CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_NAME(var_traits) \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_VAR_TRAITS_NAME(var_traits) \
)
// Count tokens separated by commas not wrapped by round parenthesis `()`.
-#define CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_COUNT_(var_count) \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_COUNT_(var_count) \
/* NOTE: The Local library uses an initialization assignment */ \
/* `= { var1 , ... }` later followed by a member initialization */ \
/* `: var1 , ...` for a total of 2 * n - 1 tokens separated by commas */ \
/* not wrapped within round parenthesis */ \
BOOST_PP_DEC(BOOST_PP_MUL(2, var_count))
-#define CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_FUNC_DEF_( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_FUNC_DEF_( \
id, tpl, result_type, func_name, const_traits) \
BOOST_PP_TUPLE_TO_LIST( \
- CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_COUNT_(BOOST_PP_LIST_SIZE( \
- CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_VARS(const_traits))) \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_COUNT_(BOOST_PP_LIST_SIZE( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_VARS( \
+ const_traits))) \
, ( /* tuple to wrap commas from LOCAL_FUNCTION expansion */ \
/* using internal LOCAL_FUNCTION macros to pass id */ \
BOOST_PP_IIF(tpl, \
@@ -94,15 +97,15 @@
)( \
func_name /* name is unique (and contains id) */ \
, BOOST_PP_LIST_FOR_EACH( /* always pp-sequence syntax */ \
- CONTRACT_AUX_CODE_CONST_EXPR_BIND_SEQ_ \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_BIND_SEQ_ \
, tpl \
- , CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_VARS(const_traits) \
+ , BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_VARS(const_traits)\
) \
(return result_type) /* avoid Boost.Typeof for result type */ \
) \
{ /* local function body */ \
/* extra paren around expression to wrap eventual commas */ \
- return (CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
+ return (BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
const_traits)); \
} \
BOOST_PP_IIF(tpl, \
@@ -112,20 +115,20 @@
)(func_name) \
) )
-#define CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_( \
id, tpl, result_type, func_name, const_expr) \
- CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_FUNC_DEF_(id, tpl, result_type, \
- func_name, CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS(const_expr))
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_FUNC_DEF_(id, tpl, result_type, \
+ func_name, BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS(const_expr))
// PUBLIC //
// Expand `const( ... ) ...` to pp-list of tokens to handle commas not wrapped
// within round parenthesis contained in local function code (use PP_LIST_ENUM
// to generate final code).
-#define CONTRACT_AUX_CODE_CONST_EXPR_TOKENS( \
+#define BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS( \
id, tpl, result_type, func_name, const_expr) \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT(const_expr), \
- CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT(const_expr), \
+ BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS_ \
, \
BOOST_PP_NIL BOOST_PP_TUPLE_EAT(5) \
)(id, tpl, result_type, func_name, const_expr)
Modified: sandbox/contract/boost/contract/aux_/macro/code_/constructor_entry.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/constructor_entry.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/constructor_entry.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,60 +5,64 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_HPP_
-#define CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_HPP_
+#define BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_HPP_
-#include <contract/aux_/macro/code_/typename.hpp>
-#include <contract/aux_/macro/code_/precondition.hpp>
-#include <contract/aux_/call/constructor_entry.hpp>
-#include <contract/aux_/constructor_try_block_guard.hpp>
+#include <boost/contract/aux_/macro/code_/typename.hpp>
+#include <boost/contract/aux_/macro/code_/precondition.hpp>
+#include <boost/contract/aux_/call/constructor_entry.hpp>
+#include <boost/contract/aux_/constructor_try_block_guard.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PARAM_NAME_( \
+#define BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PARAM_NAME_( \
r, tpl, p) \
- , CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ , BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PRECONDITION_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PRECONDITION_( \
+ id, tpl, k, f) \
, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))
// PUBLIC //
-#define CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01), \
+#define BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01), \
( /* a pp-list to be used with constructor member initializers */ \
/* POLICY: constructor preconditions and static class */ \
/* invariants are checked using an artificial base class and */ \
/* the 1st initializer so the checks happen before executing */ \
/* other base and member initializers */ \
::contract::aux::call_constructor_entry< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)() \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__)\
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__)\
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)() \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PARAM_NAME_, \
+ BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PARAM_NAME_, \
tpl, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS( \
+ f))) \
/* call func to check this object (not all) pre, static inv */ \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC \
+ BOOST_PP_COMMA_IF( \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC\
) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PRECONDITION_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY_COMMA_PRECONDITION_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/exception_spec.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/exception_spec.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/exception_spec.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,27 +5,27 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_EXCEPTION_SPEC_HPP_
-#define CONTRACT_AUX_CODE_EXCEPTION_SPEC_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_HPP_
+#define BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_HPP_
// PRIVATE //
-#define CONTRACT_AUX_CODE_EXCEPTION_SPEC_COMMA_(r, unused, i, exception) \
+#define BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_COMMA_(r, unused, i, exception) \
BOOST_PP_COMMA_IF(i) \
BOOST_PP_ARRAY_ENUM(exception)
-#define CONTRACT_AUX_CODE_EXCEPTION_SPEC_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_(id, tpl, k, f) \
throw( \
/* exception list will be empty for no-throw specification */ \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_EXCEPTION_SPEC_COMMA_, ~, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_EXCEPTIONS(f)) \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_COMMA_,\
+ ~, BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_EXCEPTIONS(f)) \
)
// PUBLIC //
-#define CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_HAS_EXCEPTION_SPEC(f), \
- CONTRACT_AUX_CODE_EXCEPTION_SPEC_ \
+#define BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_HAS_EXCEPTION_SPEC(f), \
+ BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC_ \
, \
BOOST_PP_TUPLE_EAT(4) /* nothing if no specification */ \
)(id, tpl, k, f)
Modified: sandbox/contract/boost/contract/aux_/macro/code_/final.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/final.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/final.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,92 +5,94 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_FINAL_HPP_
-#define CONTRACT_AUX_CODE_FINAL_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_FINAL_HPP_
+#define BOOST_CONTRACT_AUX_CODE_FINAL_HPP_
-#include <contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_(id) \
- CONTRACT_AUX_SYMBOL( (has_final_function_tag)(id) )
+#define BOOST_CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (has_final_function_tag)(id) )
-#define CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f) \
- CONTRACT_AUX_SYMBOL( (CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f) \
+ BOOST_CONTRACT_AUX_SYMBOL( (BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
(final_function_tag) )
-#define CONTRACT_AUX_CODE_FINAL_TAG_FUNC_PARAM_TYPE_ENUM_(r, default01, i, p) \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_PARAM_TYPE_ENUM_( \
+ r, default01, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
-#define CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_(f, name) \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_(f, name) \
/* NOTE: final functions decl this member func tag then overriding */ \
/* functions statically assert (using introspection) that none of their */ \
/* base functions have the final tag member func (i.e., they were final) */\
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* no empty result type */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* no empty result type */) \
name \
( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_FINAL_TAG_FUNC_PARAM_TYPE_ENUM_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_PARAM_TYPE_ENUM_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
-#define CONTRACT_AUX_CODE_FINAL_TAG_DECL_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
- CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_(f, \
- CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f)) \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_TAG_DECL_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_(f, \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f)) \
; /* no tag func definition needed for SFINAE so `;` */
-#define CONTRACT_AUX_CODE_FINAL_CHECK_BASE_(r, n, id_f) \
- CONTRACT_AUX_MPL_ASSERT_MSG( \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_CHECK_BASE_(r, n, id_f) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
/* base == class || !has_final_function_tag<base::func> */ \
(::boost::mpl::or_< \
::boost::is_same< \
- CONTRACT_AUX_CODE_BASE_TYPE(n) \
- , CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ , BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
> \
, ::boost::mpl::not_< \
- CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_( \
+ BOOST_CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_( \
BOOST_PP_TUPLE_ELEM(2, 0, id_f))< \
- CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_( \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_SIGNATURE_( \
BOOST_PP_TUPLE_ELEM(2, 1, id_f), \
- (CONTRACT_AUX_CODE_BASE_TYPE(n)::*) ) \
+ (BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n)::*) ) \
> \
> \
>::value) \
, BOOST_PP_SEQ_CAT( \
(ERROR_cannot_override_final_function_from_base_class_number_) \
(BOOST_PP_INC(n))(_at_line_)(BOOST_PP_TUPLE_ELEM(2, 0, id_f)) )\
- , (types< CONTRACT_AUX_CODE_BASE_TYPE(n) >) \
+ , (types< BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) >) \
); /* MPL assert requires trailing `;` */
// PUBLIC //
-#define CONTRACT_AUX_CODE_FINAL_TAG(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_FINAL(f)), \
+#define BOOST_CONTRACT_AUX_CODE_FINAL_TAG(id, tpl, k, f) \
+ BOOST_PP_IIF( \
+ BOOST_PP_IS_EMPTY(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FINAL(f)), \
BOOST_PP_TUPLE_EAT(4) \
, \
public: /* tag must be public to be accessed from intro metafunc */ \
- CONTRACT_AUX_CODE_FINAL_TAG_DECL_ \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_DECL_ \
)(id, tpl, k, f) \
private: /* check introspection metafunc can be private */ \
- CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION( \
- CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_(id), \
- CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f)) \
-
-#define CONTRACT_AUX_CODE_FINAL_CHECK(id, tpl, k, f) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_FINAL_CHECK_BASE_, (id, f))
+ BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION( \
+ BOOST_CONTRACT_AUX_CODE_FINAL_CHECK_METAFUNC_(id), \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG_FUNC_(f)) \
+
+#define BOOST_CONTRACT_AUX_CODE_FINAL_CHECK(id, tpl, k, f) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_FINAL_CHECK_BASE_, (id, f))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/func.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/func.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/func.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,32 +5,32 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_FUNC_HPP_
-#define CONTRACT_AUX_CODE_FUNC_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_FUNC_HPP_
+#define BOOST_CONTRACT_AUX_CODE_FUNC_HPP_
-#include <contract/aux_/debug.hpp>
-#include <contract/aux_/call/nonstatic_member_function.hpp>
-#include <contract/aux_/call/static_member_function.hpp>
-#include <contract/aux_/call/free_function.hpp>
-#include <contract/aux_/call/constructor_exit.hpp>
-#include <contract/aux_/call/destructor.hpp>
-#include <contract/aux_/macro/code_/class_invariant_const.hpp>
-#include <contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
-#include <contract/aux_/macro/code_/class_invariant_static.hpp>
-#include <contract/aux_/macro/code_/precondition.hpp>
-#include <contract/aux_/macro/code_/constructor_entry.hpp>
-#include <contract/aux_/macro/code_/body.hpp>
-#include <contract/aux_/macro/code_/override.hpp>
-#include <contract/aux_/macro/code_/final.hpp>
-#include <contract/aux_/macro/code_/new.hpp>
-#include <contract/aux_/macro/code_/result_type.hpp>
-#include <contract/aux_/config.hpp>
-#include <contract/aux_/concept_assert.hpp>
-#include <contract/aux_/preprocessor/func_kind.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
-#include <contract/detail/preprocessor/traits/func_param.hpp> // p
-#include <contract/detail/preprocessor/keyword/contract/comma.hpp>
-#include <contract/detail/preprocessor/keyword/public.hpp>
+#include <boost/contract/aux_/debug.hpp>
+#include <boost/contract/aux_/call/nonstatic_member_function.hpp>
+#include <boost/contract/aux_/call/static_member_function.hpp>
+#include <boost/contract/aux_/call/free_function.hpp>
+#include <boost/contract/aux_/call/constructor_exit.hpp>
+#include <boost/contract/aux_/call/destructor.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_const.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_const_volatile.hpp>
+#include <boost/contract/aux_/macro/code_/class_invariant_static.hpp>
+#include <boost/contract/aux_/macro/code_/precondition.hpp>
+#include <boost/contract/aux_/macro/code_/constructor_entry.hpp>
+#include <boost/contract/aux_/macro/code_/body.hpp>
+#include <boost/contract/aux_/macro/code_/override.hpp>
+#include <boost/contract/aux_/macro/code_/final.hpp>
+#include <boost/contract/aux_/macro/code_/new.hpp>
+#include <boost/contract/aux_/macro/code_/result_type.hpp>
+#include <boost/contract/aux_/config.hpp>
+#include <boost/contract/aux_/concept_assert.hpp>
+#include <boost/contract/aux_/preprocessor/func_kind.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/detail/preprocessor/traits/func_param.hpp> // p
+#include <boost/contract/detail/preprocessor/keyword/boost/contract/comma.hpp>
+#include <boost/contract/detail/preprocessor/keyword/public.hpp>
#include <boost/preprocessor/list/for_each_i.hpp>
#include <boost/preprocessor/facilities/is_empty.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
@@ -43,86 +43,89 @@
// PRIVATE //
-#define CONTRACT_AUX_CODE_FUNC_DOUBLE_PAREN_CONCEPT_(r, unused, concept) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_DOUBLE_PAREN_CONCEPT_(r, unused, concept) \
((concept))
-#define CONTRACT_AUX_CODE_FUNC_PARAM_DECL_ENUM_(r, default01, i, p) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_PARAM_DECL_ENUM_(r, default01, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p)) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p)) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p) \
BOOST_PP_IIF(BOOST_PP_AND(default01, BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))), \
= BOOST_PP_ARRAY_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))
+ )(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))
-#define CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_TYPE_(r, unused, p) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_TYPE_(r, unused, p) \
, \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
-#define CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_(r, unused, p) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_(r, unused, p) \
, \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_FUNC_PARAM_NAME_ENUM_(r, unused, i, p) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_PARAM_NAME_ENUM_(r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
// Precondition: !EMPTY(ACCESS(f)).
-#define CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, class_inv_func_ptr) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_( \
+ f, class_inv_func_ptr) \
BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))), \
/* NOTE: friends are contracts as static members however they never */ \
/* check (static) class invariants (regardless of their declaration */ \
/* access level) because they are not actually members */ \
0 /* null ptr to not check class inv */ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_PUBLIC_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f)), \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_PUBLIC_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f)), \
/* POLICY: only public func check class inv */ \
class_inv_func_ptr \
, \
0 /* null ptr to not check class inv */ \
))
-#define CONTRACT_AUX_CODE_FUNC_CONCEPT_ASSERT_(r, id, i, concept) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPT_ASSERT_(r, id, i, concept) \
/* can expand multiple of this macros on same line because of id */ \
- CONTRACT_AUX_CONCEPT_ASSERT( (BOOST_PP_ARRAY_ENUM(concept)), \
+ BOOST_CONTRACT_AUX_CONCEPT_ASSERT( (BOOST_PP_ARRAY_ENUM(concept)), \
/* pp-cat infix because Boost.ConceptCheck will cat it again */ \
- CONTRACT_AUX_SYMBOL( (concept_check)(id)(i) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( (concept_check)(id)(i) ) \
); /* `;` ends concept assertion */
-#define CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
/* NOTE: use CONCEPT_ASSERT instead of CONCEPT_REQUIRES because */ \
/* REQUIRES does not compile and/or gives multiple concept errors when */ \
/* used with fwd decl (fwd decl are necessary for the contracted func */ \
/* as impl by this lib) -- the main reason to use REQUIRES is to spec */ \
/* concepts in func decl instead of def but that is already achieved */ \
/* by this lib syntax and its `requires` "keyword" */ \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_FUNC_CONCEPT_ASSERT_, id, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONCEPTS(f))
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPT_ASSERT_, id, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONCEPTS(f))
-#define CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_FINAL_CHECK(id, tpl, k, f) \
- CONTRACT_AUX_CODE_OVERRIDE_CHECK(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NEW_CHECK(id, tpl, k, f)
+#define BOOST_CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FINAL_CHECK(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OVERRIDE_CHECK(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NEW_CHECK(id, tpl, k, f)
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_TRY_BLOCK_ENABLE_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_TRY_BLOCK_ENABLE_( \
+ id, tpl, k, f) \
BOOST_PP_IIF(BOOST_PP_BITAND( \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01), \
- BOOST_PP_LIST_IS_CONS(CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f))), \
+ BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01), \
+ BOOST_PP_LIST_IS_CONS( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f))), \
( /* a pp-list to be used with constructor member initializers */ \
/* no typename needed here (inits are always types) */ \
BOOST_IDENTITY_TYPE((::contract::aux::constructor_inits_eval< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
, ::contract::aux::constructor_inits_eval_try_block_set \
>))( \
/* enabled try-block to catch initializers exceptions */ \
::contract::aux::constructor_try_block_guard< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- >::CONTRACT_AUX_SYMBOL((enable))() \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ >::BOOST_CONTRACT_AUX_SYMBOL((enable))() \
) \
, \
BOOST_PP_NIL \
@@ -131,7 +134,7 @@
BOOST_PP_NIL /* no constructor try-block */ \
)
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_CONTRACT_DEF_( \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BOOST_CONTRACT_DEF_( \
id, tpl, k, f, body_func) \
{ \
/* POLICY: Only constructor member initializers and body are */ \
@@ -140,48 +143,48 @@
/* constructor initializers have been executed (contract code will */ \
/* re-enable try-block while calling the body) */ \
::contract::aux::constructor_try_block_guard< \
- CONTRACT_AUX_CODE_CLASS_TYPE >:: \
- CONTRACT_AUX_SYMBOL((disable))(); \
- CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE >:: \
+ BOOST_CONTRACT_AUX_SYMBOL((disable))(); \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
::contract::aux::call_constructor_exit< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
, this \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
BOOST_PP_SEQ_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
)( \
- ( CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC) ) \
- ( CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC) ) \
+ ( BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC) ) \
+ ( BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC) ) \
) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f),\
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
); \
}
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BODY_DEF_( \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BODY_DEF_( \
id, tpl, k, f, body_func) \
{ \
/* LIMITATION: to handle member initializers (that are defined */ \
@@ -194,225 +197,238 @@
/* even when contracts are off), also needed for ctor named params */ \
/* NOTE: no need for try block disable here because no contracts */ \
(body_func /* outer paren to wrap eventual tparams */ \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
( /* arguments */ \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_FUNC_PARAM_NAME_ENUM_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PARAM_NAME_ENUM_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
)); \
}
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CATCH_(r, unused, catch_traits) \
- catch(CONTRACT_DETAIL_PP_CATCH_TRAITS_EXCEPTION_DECL(catch_traits)) { \
- BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CATCH_( \
+ r, unused, catch_traits) \
+ catch(BOOST_CONTRACT_DETAIL_PP_CATCH_TRAITS_EXCEPTION_DECL(catch_traits)) \
+ { \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ) \
+ ), \
if(!::contract::aux::constructor_try_block_guard< \
- CONTRACT_AUX_CODE_CLASS_TYPE >:: \
- CONTRACT_AUX_SYMBOL((enabled))()) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE >:: \
+ BOOST_CONTRACT_AUX_SYMBOL((enabled))()) \
/* POLICY: Contracts exec outside function-try-block */ \
/* (see N1962) so re-throw and don't allow try-bloc exec */ \
- { throw; } \
+ { throw; } \
) \
- CONTRACT_DETAIL_PP_CATCH_TRAITS_STATEMENTS(catch_traits) \
+ BOOST_CONTRACT_DETAIL_PP_CATCH_TRAITS_STATEMENTS(catch_traits) \
}
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_COMMA_INIT_(r, unused, i, init) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_COMMA_INIT_( \
+ r, unused, i, init) \
BOOST_PP_COMMA_IF(i) \
BOOST_PP_ARRAY_ENUM(init)
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INITS_(inits) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INITS_(inits) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(inits), :) \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_COMMA_INIT_, \
- ~, inits)
+ BOOST_PP_LIST_FOR_EACH_I( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_COMMA_INIT_, ~, inits)
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_(d, unused, init) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_( \
+ d, unused, init) \
/* wrap into 1-size array so can be used with user-specified inits */ \
/* (which are always wrapped in arrays to handle unwrapped commas) */ \
(1, (init))
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_(id, tpl, k, f, body_func) \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF(id, tpl, k, f, body_func, \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_( \
+ id, tpl, k, f, body_func) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF(id, tpl, k, f, body_func, \
BOOST_PP_NIL) \
-#define CONTRACT_AUX_CODE_FUNC_DESTRUCTOR_DEF_(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_DESTRUCTOR_DEF_(id, tpl, k, f, body_func) \
{ \
- CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
::contract::aux::call_destructor< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
, this \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
BOOST_PP_SEQ_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
)( \
- ( CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC) ) \
- ( CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC) ) \
- ( CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_FUNC) )\
+ ( BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_STATIC_FUNC) ) \
+ ( BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_INVARIANT_CONST_FUNC) ) \
+ ( BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_FUNC) )\
) \
); \
}
-#define CONTRACT_AUX_CODE_FUNC_STATIC_MEMBER_DEF_(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_STATIC_MEMBER_DEF_( \
+ id, tpl, k, f, body_func) \
{ \
- CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
return ::contract::aux::call_static_member_function< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
- CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_STATIC_FUNC) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_STATIC_FUNC) \
) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_PRECONDITION_FUNC( \
- id, tpl, k, f), CONTRACT_AUX_CODE_CLASS_TYPE) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC( \
+ id, tpl, k, f), BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f),\
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
); \
}
-#define CONTRACT_AUX_CODE_FUNC_FREE_DEF_(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_FREE_DEF_(id, tpl, k, f, body_func) \
{ \
- CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
return ::contract::aux::call_free_function< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
- CONTRACT_AUX_CODE_CLASS_TYPE) /*class type not used here*/ \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
+ /* class type not used here */ \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_PRECONDITION_FUNC( \
- id, tpl, k, f), CONTRACT_AUX_CODE_CLASS_TYPE) \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC( \
+ id, tpl, k, f), BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
/* class type not used here (because free func */ \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_OLDOF_FUNC( \
- id, tpl, k, f), CONTRACT_AUX_CODE_CLASS_TYPE) \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC( \
+ id, tpl, k, f), BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
); \
}
-#define CONTRACT_AUX_CODE_FUNC_NONSTATIC_MEMBER_DEF_(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_NONSTATIC_MEMBER_DEF_( \
+ id, tpl, k, f, body_func) \
{ \
- CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONCEPTS_(id, tpl, k, f) \
return ::contract::aux::call_nonstatic_member_function< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_DEBUG_01) \
- CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __FILE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01, __LINE__) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_DEBUG_01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, body_func, \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
, this \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
- CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
- & CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CLASS_INVARIANT_PTR_(f, \
+ & BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)), \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_FUNC \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)), \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_FUNC \
, \
BOOST_PP_EXPR_IIF(tpl, template) \
- CONTRACT_AUX_CODE_SUBCONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC< \
- void> /* unused tparam to delay compilation */ \
+BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_CLASS_INVARIANT_CONST_VOLATILE_FUNC\
+ <void> /* unused tparam to delay compilation */\
) \
) \
) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
)(id, tpl, k, f, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_FUNC( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_FUNC( \
id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CODE_FUNC_PTR \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PTR \
, \
BOOST_PP_TUPLE_EAT(6) \
)(id, tpl, k, f, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_FUNC( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_FUNC( \
id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
); \
/* for tpl func virtual spec checks must be within this func def */ \
/* so they can access actual tparam instantiated types, however */ \
/* for non-tpl func this causes MSVC duplicate definition linker */ \
/* errors so... (continues below) */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
} \
/* (continued from above) ... for non-tpl func these virtual spec */ \
/* checks must appear outside the func def to avoid MSVC liker errors */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
BOOST_PP_TUPLE_EAT(4) \
, \
- CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_ \
+ BOOST_CONTRACT_AUX_CODE_FUNC_VIRTUAL_SPECIFIERS_CHECK_ \
)(id, tpl, k, f)
// PUBLIC //
@@ -420,97 +436,100 @@
// Used to access a function pointer eventually member and template (class_type
// ignored if not a member function).
// Expand to: `& [class_type::[template]] func_name [<tparam_name, ...>]`
-#define CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, func_name, class_type) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, func_name, class_type) \
& /* get pointer to function */ \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
class_type :: \
) \
BOOST_PP_EXPR_IIF( \
BOOST_PP_BITAND( \
tpl \
, BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
, BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))\
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f)))\
) \
), \
template \
) \
func_name \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))
// Named params need to force body even if all contracts off.
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE( \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE( \
id, tpl, k, f, body_func, first_inits, force_body) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)), \
try /* constructor-try-block within macros to handle initializers */ \
) \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INITS_( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INITS_( \
BOOST_PP_LIST_APPEND( \
BOOST_PP_LIST_TRANSFORM( \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, ~, \
- first_inits) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, \
+ ~, first_inits) \
, BOOST_PP_LIST_APPEND( \
/* NOTE: order of this pp-list append follows inheritance order */ \
/* (and try-block must be enabled after constructor-entry) */ \
BOOST_PP_LIST_TRANSFORM( \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, ~,\
- CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY(id, tpl, k, f)) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, \
+ ~, BOOST_CONTRACT_AUX_CODE_CONSTRUCTOR_ENTRY( \
+ id, tpl, k, f)) \
, BOOST_PP_LIST_APPEND( \
BOOST_PP_LIST_TRANSFORM( \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_INIT_ARRAY_WRAP_, \
~, \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_TRY_BLOCK_ENABLE_( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_TRY_BLOCK_ENABLE_( \
id, tpl, k, f)) \
- , CONTRACT_DETAIL_PP_FUNC_TRAITS_INITIALIZERS(f) \
+ , BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_INITIALIZERS(f) \
) \
) \
) \
) \
- BOOST_PP_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
+ BOOST_PP_IIF(BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_PP_BITOR(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01)), \
/* constructor contracts */ \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_CONTRACT_DEF_ \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BOOST_CONTRACT_DEF_ \
, BOOST_PP_IIF(force_body, \
/* no contracts but constructor try-blocks */ \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BODY_DEF_ \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CALL_BODY_DEF_ \
, \
/* no contract and no try-blocks (eventually just constructor inits */ \
BOOST_PP_TUPLE_EAT(5) \
))(id, tpl, k, f, body_func) \
- BOOST_PP_LIST_FOR_EACH(CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CATCH_, ~, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f))
+ BOOST_PP_LIST_FOR_EACH(BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_CATCH_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f))
-#define CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF( \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF( \
id, tpl, k, f, body_func, first_inits) \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE(id, tpl, k, f, body_func, \
- first_inits, BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)))
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE(id, tpl, k, f, \
+ body_func, first_inits, BOOST_PP_LIST_IS_CONS( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)))
-#define CONTRACT_AUX_CODE_FUNC_NAMED_DECL(id, tpl, k, f, name, \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_NAMED_DECL(id, tpl, k, f, name, \
access_level01, force_friend01, explicit01, force_inline01, \
force_result_type01, param_defaults01) \
BOOST_PP_IIF(access_level01, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS \
, \
BOOST_PP_TUPLE_EAT(1) \
)(f) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(access_level01, BOOST_PP_COMPL( \
- BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f)))), \
+ BOOST_PP_IS_EMPTY(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS( \
+ f)))), \
: \
) \
BOOST_PP_EXPR_IIF(force_friend01, friend) /* see also static below */ \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
BOOST_PP_IIF(explicit01, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_EXPLICIT \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_EXPLICIT \
, \
BOOST_PP_TUPLE_EAT(1) \
)(f) \
@@ -518,33 +537,36 @@
inline \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_INLINE \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_INLINE \
)(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_EXTERN(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_EXTERN(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f) \
/* friends contracted as static members (unless forcing friendship) */ \
BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(BOOST_PP_COMPL(force_friend01), \
BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f)))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f)))), \
static \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VIRTUAL(f) \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, BOOST_PP_COMPL(force_result_type01)) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VIRTUAL(f) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, \
+ BOOST_PP_COMPL(force_result_type01)) \
name \
( \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_FUNC_PARAM_DECL_ENUM_, \
+ BOOST_PP_LIST_FOR_EACH_I( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_PARAM_DECL_ENUM_, \
param_defaults01, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
-#define CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f, friend01, defaults01) \
- CONTRACT_AUX_CODE_FUNC_NAMED_DECL( \
- id, tpl, k, f \
- , CONTRACT_AUX_CODE_NAME(CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f, friend01, defaults01) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_NAMED_DECL( \
+ id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAME(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR( \
+ f) \
+ , BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
, 1 /* with access level */ \
, friend01 \
, 1 /* with explicit */ \
@@ -553,30 +575,31 @@
/* member func automatically inlined when def in class decl, */ \
/* which is always the case for contracted func) */ \
, BOOST_PP_BITAND( \
- BOOST_PP_COMPL(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)) \
+ BOOST_PP_COMPL(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
) \
) \
, 0 /* no forced result type */ \
, defaults01 /* with param defaults */ \
)
-#define CONTRACT_AUX_CODE_FUNC_DEF(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_FUNC_DEF(id, tpl, k, f, body_func) \
/* the order of the following if-statement matter */ \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_ \
- , BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_AUX_CODE_FUNC_DESTRUCTOR_DEF_ \
- , BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_STATIC_MEMBER_FUNCTION(k, f), \
- /* friend members are also contracted as static members */ \
- CONTRACT_AUX_CODE_FUNC_STATIC_MEMBER_DEF_ \
- , BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_DESTRUCTOR_DEF_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_STATIC_MEMBER_FUNCTION( \
k, f), \
- CONTRACT_AUX_CODE_FUNC_NONSTATIC_MEMBER_DEF_ \
+ /* friend members are also contracted as static members */ \
+ BOOST_CONTRACT_AUX_CODE_FUNC_STATIC_MEMBER_DEF_ \
+ , BOOST_PP_IIF( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f),\
+ BOOST_CONTRACT_AUX_CODE_FUNC_NONSTATIC_MEMBER_DEF_ \
, \
- CONTRACT_AUX_CODE_FUNC_FREE_DEF_ \
+ BOOST_CONTRACT_AUX_CODE_FUNC_FREE_DEF_ \
))))(id, tpl, k, f, body_func)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/loop_variant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/loop_variant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/loop_variant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,83 +5,92 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_LOOP_VARIANT_HPP_
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_HPP_
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_HPP_
-#include <contract/broken.hpp>
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/call/globals.hpp>
-#include <contract/aux_/macro/code_/const_expr.hpp>
-#include <contract/detail/preprocessor/keyword/const.hpp>
+#include <boost/contract/broken.hpp>
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/call/globals.hpp>
+#include <boost/contract/aux_/macro/code_/const_expr.hpp>
+#include <boost/contract/detail/preprocessor/keyword/const.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ \
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ \
/* NOTE: this name should not be made unique (using id, etc) so to */ \
/* give error is multiple loop variants used within same loop */ \
/* (only 1 loop invariant for loop because that's theoretically correct */ \
/* and because there is only 1 old loop variant variable) */ \
- CONTRACT_AUX_SYMBOL( (loop_variant) )
+ BOOST_CONTRACT_AUX_SYMBOL( (loop_variant) )
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id) \
- CONTRACT_AUX_SYMBOL( (loop_variant_func)(id) )
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (loop_variant_func)(id) )
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_(expr) \
- try { \
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_(expr) \
+ try \
+ { \
::contract::aux::call_globals<>::is_checking_contract = true; \
/* assert loop variant never negative (but can be zero) */ \
- if(!(CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ >= 0)) \
+ if(!(BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ >= 0)) \
+ { \
throw ::contract::broken(__FILE__, __LINE__, \
BOOST_PP_STRINGIZE(expr) " >= 0 " \
" /* non-negative loop variant */"); \
+ } \
/* assert either 1st iteration (old loop variant not initialized */ \
/* yet) or loop variant monotonically decreasing */ \
if(!( \
- CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value == \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value == \
::contract::aux::loop_variant::uninitialized \
- || CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ < \
- CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value \
- )) throw ::contract::broken(__FILE__, __LINE__, \
- BOOST_PP_STRINGIZE(expr) " < oldof " BOOST_PP_STRINGIZE(expr) \
- " /* monotonically decreasing loop variant */"); \
+ || BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ < \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value \
+ )) \
+ { \
+ throw ::contract::broken(__FILE__, __LINE__, \
+ BOOST_PP_STRINGIZE(expr) " < oldof " \
+ BOOST_PP_STRINGIZE(expr) \
+ " /* monotonically decreasing loop variant */"); \
+ } \
::contract::aux::call_globals<>::is_checking_contract = false; \
- } catch(...) { \
+ } \
+ catch(...) \
+ { \
::contract::aux::call_globals<>::is_checking_contract = false; \
::contract::loop_variant_broken(::contract::FROM_BODY); \
} \
/* update old loop variant with variant calc in this iteration */ \
- CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value = \
- CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_;
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR.value = \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_;
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_CONST_(id, tpl, const_expr) \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_CONST_EXPR_TOKENS(id, tpl, \
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_CONST_(id, tpl, const_expr) \
+ BOOST_PP_LIST_ENUM(BOOST_CONTRACT_AUX_CODE_CONST_EXPR_TOKENS(id, tpl, \
::contract::aux::loop_variant::value_type, \
- CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id), const_expr)) \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id), const_expr)) \
::contract::aux::loop_variant::value_type \
- CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ = \
- CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id)(); \
- CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_( \
- CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
- CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS(const_expr)))
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ = \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_FUNC_(id)(); \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS_EXPR( \
+ BOOST_CONTRACT_DETAIL_PP_CONST_EXPR_TRAITS(const_expr)))
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_(id, tpl, expr) \
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_(id, tpl, expr) \
::contract::aux::loop_variant::value_type \
- CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ = expr; \
- CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_(expr)
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_VAR_ = expr; \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_CHECK_AND_UPDATE_(expr)
// PUBLIC //
-#define CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR \
- CONTRACT_AUX_SYMBOL( (loop_variant_old) )
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_OLD_VAR \
+ BOOST_CONTRACT_AUX_SYMBOL( (loop_variant_old) )
-#define CONTRACT_AUX_CODE_LOOP_VARIANT(id, tpl, expr) \
+#define BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT(id, tpl, expr) \
/* loop variant cannot be a compile-time static expression */ \
/* (metafunction) because it must dynamically decrease at run-time */ \
/* but const-expr allowed for variant expr */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT(expr), \
- CONTRACT_AUX_CODE_LOOP_VARIANT_CONST_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT(expr), \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_CONST_ \
, \
- CONTRACT_AUX_CODE_LOOP_VARIANT_ \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT_ \
)(id, tpl, expr)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/name.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/name.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/name.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,59 +5,59 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAME_HPP_
-#define CONTRACT_AUX_CODE_NAME_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAME_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAME_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
// PRIVATE //
// Precondition: name is alphanumeric (so not destructor name `~...`).
-#define CONTRACT_AUX_CODE_NAME_OPERATOR_(name) \
- CONTRACT_AUX_SYMBOL( (operator)(name) )
+#define BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_(name) \
+ BOOST_CONTRACT_AUX_SYMBOL( (operator)(name) )
-#define CONTRACT_AUX_CODE_NAME_OPERATOR_COMMA_(unused) \
+#define BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_COMMA_(unused) \
, /* symbol for for `operator,` */
// Precondition: SIZE(operator_tokens) > 0.
-#define CONTRACT_AUX_CODE_NAME_OPERATOR_SYMBOL_(operator_tokens, name) \
+#define BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_SYMBOL_(operator_tokens, name) \
/* operator's name is always alphanumeric so IS_COMMA_FRONT can be used */ \
/* (name is not alphanumeric only for ~destructor, not an operator) */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_COMMA_FRONT(name), \
- CONTRACT_AUX_CODE_NAME_OPERATOR_COMMA_ /* comma operator */ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_COMMA_FRONT(name), \
+ BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_COMMA_ /* comma operator */ \
, \
BOOST_PP_ARRAY_ENUM /* operator symbol tokens */ \
)(operator_tokens)
-#define CONTRACT_AUX_CODE_NAME_(operator_tokens, name) \
+#define BOOST_CONTRACT_AUX_CODE_NAME_(operator_tokens, name) \
name
// PUBLIC //
// Expand to either the function name `f` or to the operator symbolic name
// `operator ==`, `operator ,`, `operator new`, `operator int*` etc.
-#define CONTRACT_AUX_CODE_NAME(operator_tokens, name) \
+#define BOOST_CONTRACT_AUX_CODE_NAME(operator_tokens, name) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE(operator_tokens), \
- operator CONTRACT_AUX_CODE_NAME_OPERATOR_SYMBOL_ \
+ operator BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_SYMBOL_ \
, \
- CONTRACT_AUX_CODE_NAME_ \
+ BOOST_CONTRACT_AUX_CODE_NAME_ \
)(operator_tokens, name)
-#define CONTRACT_AUX_CODE_NAME_POSTFIXED(is_constructor01, is_destructor01, \
- operator_tokens, name, postfix_seq) \
- CONTRACT_AUX_SYMBOL( \
+#define BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ is_constructor01, is_destructor01, operator_tokens, name, postfix_seq) \
+ BOOST_CONTRACT_AUX_SYMBOL( \
( \
BOOST_PP_IIF(is_constructor01, \
/* contract_aux_... so user can use func named constructor */ \
- CONTRACT_AUX_SYMBOL( (constructor) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( (constructor) ) \
BOOST_PP_TUPLE_EAT(1) \
, BOOST_PP_IIF(is_destructor01, \
/* contract_aux_... so user can use func named destructor */ \
- CONTRACT_AUX_SYMBOL( (destructor) ) \
+ BOOST_CONTRACT_AUX_SYMBOL( (destructor) ) \
BOOST_PP_TUPLE_EAT(1) \
, BOOST_PP_IF(BOOST_PP_ARRAY_SIZE(operator_tokens), \
- CONTRACT_AUX_CODE_NAME_OPERATOR_ \
+ BOOST_CONTRACT_AUX_CODE_NAME_OPERATOR_ \
, \
BOOST_PP_TUPLE_REM(1) \
)))(name) \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_/boost_.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_/boost_.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_/boost_.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,57 +5,57 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_HPP_
-#include <contract/detail/preprocessor/keyword/contract/out.hpp>
-#include <contract/detail/preprocessor/keyword/contract/in.hpp>
-#include <contract/detail/preprocessor/keyword/contract/deduce.hpp>
-#include <contract/detail/preprocessor/keyword/contract/requires.hpp>
-#include <contract/detail/preprocessor/keyword/auto.hpp>
+#include <boost/contract/detail/preprocessor/keyword/boost/contract/out.hpp>
+#include <boost/contract/detail/preprocessor/keyword/boost/contract/in.hpp>
+#include <boost/contract/detail/preprocessor/keyword/boost/contract/deduce.hpp>
+#include <boost/contract/detail/preprocessor/keyword/boost/contract/requires.hpp>
+#include <boost/contract/detail/preprocessor/keyword/auto.hpp>
// Utilities that only transform parameter traits into Boost.Parameter formats.
// PRIVATE //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQ_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQ_( \
d, p, required_params, optional_params) \
( \
BOOST_PP_LIST_APPEND(required_params, ( \
( /* Boost.Parameter required param is 2-tuple */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
) \
, BOOST_PP_NIL)) \
, \
optional_params \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_OPT_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_OPT_( \
d, p, required_params, optional_params) \
( \
required_params \
, \
BOOST_PP_LIST_APPEND(optional_params, ( \
( /* Boost.Parameter optional param is 3-tuple */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
, \
BOOST_PP_ARRAY_ENUM( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)) \
) \
, BOOST_PP_NIL)) \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT_TUPLE_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT_TUPLE_( \
d, required_optional, p) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_OPT_ \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_OPT_ \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQ_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQ_ \
)(d, p \
, BOOST_PP_TUPLE_ELEM(2, 0, required_optional) \
, BOOST_PP_TUPLE_ELEM(2, 1, required_optional) \
@@ -63,86 +63,86 @@
// PUBLIC //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT(params) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT(params) \
BOOST_PP_LIST_FOLD_LEFT( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT_TUPLE_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT_TUPLE_, \
(BOOST_PP_NIL, BOOST_PP_NIL), params)
// Expand to 1 iff `out` (not if `in out`).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_ONLY(p) \
- CONTRACT_DETAIL_PP_KEYWORD_IS_OUT_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_ONLY(p) \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_OUT_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
BOOST_PP_NIL /* handle possible EMPTY after removals */ \
))
// Expand to 1 iff `out` or `in out`.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p) \
- CONTRACT_DETAIL_PP_KEYWORD_IS_OUT_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p) \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_OUT_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
BOOST_PP_NIL /* handle possible EMPTY after removals */ \
)))
// Precondition: classifier is `[deduce] out | in | in out` (i.e., named param).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
/* order of following checking is important */ \
- BOOST_PP_IIF(CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_ONLY(p), \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_ONLY(p), \
out \
, BOOST_PP_IIF( /* already checked not out-only, so in-out */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
in_out \
, /* else, in-only */ \
BOOST_PP_TUPLE_REM(1) \
- ))(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p))
+ ))(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_AUTO_FRONT( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_AUTO_FRONT( \
/* the following removal order is important */ \
- CONTRACT_DETAIL_PP_KEYWORD_OUT_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_OUT_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
BOOST_PP_NIL /* handle possible EMPTY after removals */ \
)))), \
* BOOST_PP_TUPLE_EAT(1) /* any type */ \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_REQUIRES_FRONT( \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_REQUIRES_FRONT( \
/* the following removal order is important */ \
- CONTRACT_DETAIL_PP_KEYWORD_OUT_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_OUT_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_IN_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_KEYWORD_DEDUCE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
BOOST_PP_NIL /* handle possible EMPTY after removals */ \
)))), \
* BOOST_PP_ARRAY_DATA /* matching type requirement */ \
, \
BOOST_PP_ARRAY_DATA /* exact type specified */ \
- ))(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
+ ))(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
// Tag.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE(params)), \
- CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE(params)), \
+ BOOST_CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
)(params) \
:: \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE(tparams)), \
- CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE(tparams)), \
+ BOOST_CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
)(tparams) \
:: \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t)
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_/constructor.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_/constructor.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_/constructor.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,10 +5,10 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_HPP_
-#include <contract/aux_/macro/parameter.hpp>
+#include <boost/contract/aux_/macro/parameter.hpp>
#include <boost/parameter.hpp>
// WARNING: Unfortunately, this file must use internal implementation details
@@ -27,94 +27,95 @@
// PRIVATE //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_ \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_ \
/* NOTE: no ID here because it needs to be used by CONSTRUCTOR_ARG */ \
/* macro at different lines (this is OK because this is a func param */ \
/* so it is unique to the func scope) */ \
- CONTRACT_AUX_SYMBOL( (named_params_args) )
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_args) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_(name) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_(name) \
/* NOTE: no ID here because it needs to be used by CONSTRUCTOR_ARG */ \
/* macro at different lines (this is OK because this is a func param */ \
/* so it is unique to the func scope) */ \
- CONTRACT_AUX_SYMBOL( (named_params_arg)(name) )
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_arg)(name) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_(name) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_(name) \
/* NOTE: no ID here because it needs to be used by CONSTRUCTOR_ARG */ \
/* macro at different lines (this is OK because this is a func param */ \
/* so it is unique to the func scope) */ \
- CONTRACT_AUX_SYMBOL( (named_params_default)(name) )
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_default)(name) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_PRED_(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_PRED_(p) \
typename ::boost::parameter::aux::unwrap_predicate< \
- void CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
+ void BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
>::type
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_( \
params, p, predicate01) \
::boost::parameter:: \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
optional \
, \
required \
) < \
/* param tag (possibly deduced) */ \
- BOOST_PP_EXPR_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
::boost::parameter::deduced< \
) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
- BOOST_PP_EXPR_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
> \
) \
/* param type predicate */ \
BOOST_PP_COMMA_IF(predicate01) \
BOOST_PP_IIF(predicate01, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_PRED_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_PRED_ \
, \
BOOST_PP_TUPLE_EAT(1) \
)(p) \
>
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_ENUM_( \
r, params, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_(params, p, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_(params, p, \
1 /* with type predicate */)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_( \
unused0, n, unused1) /* unused so it can be used with ENUM, etc */ \
- CONTRACT_AUX_SYMBOL( (NamedParamsArg)(n) )
+ BOOST_CONTRACT_AUX_SYMBOL( (NamedParamsArg)(n) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_(\
unused, n, arg_types) /* unused so it can be used with ENUM, etc */ \
- BOOST_PP_EXPR_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_CONST_FRONT( \
BOOST_PP_SEQ_ELEM(n, arg_types)), \
const \
) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_(~, n, ~) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_(~, n, ~) \
/* don't qualify with reference here */
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_( \
unused0, n, unused1) /* unused so it can be used with ENUM, etc */ \
- CONTRACT_AUX_SYMBOL( (named_params_arg)(n) )
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_arg)(n) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_( \
z, n, default01) \
- typename CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_(~, n, ~) \
+ typename BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_( \
+ ~, n, ~) \
BOOST_PP_EXPR_IIF(default01, = void)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_DECL_( \
z, n, arg_types) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_(~, n, \
- arg_types) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_( \
+ ~, n, arg_types) \
& /* always by ref (plus const for in-only params) */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_(~, n, ~)
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_(~, n, ~)
// Precondition: ARRAY_SIZE(DEFAULT(p)) > 0
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_(p) \
/* NOTE: the default parameter type must be deduced because it is not */ \
/* specified anywhere (the parameter type is generic and it is not */ \
/* matched to the default value type by Boost.Parameter unless the */ \
@@ -122,117 +123,122 @@
/* used because it would force matching between default value and */ \
/* parameter type in cases where Boost.Parameter does not require it) */ \
BOOST_TYPEOF(BOOST_PP_ARRAY_ENUM( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)))
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)))
// Precondition: ARRAY_SIZE(DEFAULT(p)) > 0
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_PARAM_(p) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_(p) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
- = BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_PARAM_(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
+ = BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_NODEFAULT_PARAM_(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_NODEFAULT_PARAM_(p) \
::contract::aux::named_params::no_default \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
= 0
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMMA_NAMED_PARAM_DECL_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMMA_NAMED_PARAM_DECL_( \
r, params, p) \
/* NOTE: keywords and defaults are defined here so the CONSTRUCTOR_ARG */ \
/* macro can access them with a fixed name (can't use the user-defined */ \
/* ones because the tag namespace might not be default in which case */ \
/* the CONSTRUCTOR_ARG macro won't know what the tag namespace is */ \
- /* plus the CONTRACT_ARG macro has no access to defaults with are */ \
+ /* plus the BOOST_CONTRACT_ARG macro has no access to defaults with are */ \
/* in the function declaration traits) */ \
, ::boost::parameter::keyword< \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
> const& \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
= ::boost::parameter::keyword< \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG(params, p) \
>::instance \
, BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_PARAM_ \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_PARAM_ \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_NODEFAULT_PARAM_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_NODEFAULT_PARAM_ \
)(p)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OPEN_ELEM_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OPEN_ELEM_ENUM_( \
r, params, i, p) \
BOOST_PP_COMMA_IF(i) \
::boost::parameter::aux::item< \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_(params, p, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_(params, p, \
0 /* no type predicate */) \
- , CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_(~, i, ~) \
+ , BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_(~, i, ~)\
/* don't close `>` here (that's why this is called OPEN_ELEM)... */
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_CLOSE_ELEM_(z, n, unused) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_CLOSE_ELEM_( \
+ z, n, unused) \
> /* ... `item<` are closed here (so they are nested into each other) */
// Named parameter structs.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id) \
- CONTRACT_AUX_SYMBOL( (named_params_constructor_tpl)(id) ) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_constructor_tpl)(id) ) \
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id) \
- CONTRACT_AUX_SYMBOL( (named_params_constructor)(id) )
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (named_params_constructor)(id) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
f, named_and_deduced_params) \
::boost::parameter::parameters< \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_ENUM_, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_ENUM_, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
named_and_deduced_params) \
>
// Define Boost.Parameter structs to deduce and match params.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_( \
id, tpl, k, f, named_and_deduced_params) \
template< \
/* make this dummy template so its def can always use typename */ \
- typename CONTRACT_AUX_SYMBOL( (NamedParamsConstructorUnused)(id) ) \
+ typename BOOST_CONTRACT_AUX_SYMBOL( \
+ (NamedParamsConstructorUnused)(id) ) \
> \
- struct CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id) \
- : CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
+ struct BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id) \
+ : BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
f, named_and_deduced_params) \
{ \
template< \
BOOST_PP_ENUM(BOOST_PP_LIST_SIZE(named_and_deduced_params), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_,\
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_, \
1 /* with default */) \
> \
struct arg_list { \
typedef typename ::boost::mpl::first< \
typename ::boost::parameter::aux::make_arg_list< \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OPEN_ELEM_ENUM_, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OPEN_ELEM_ENUM_, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
named_and_deduced_params) \
BOOST_PP_REPEAT( \
BOOST_PP_LIST_SIZE(named_and_deduced_params), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_CLOSE_ELEM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_CLOSE_ELEM_, \
~) \
/* if named params, at leas one param so alway , below */ \
, typename \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
- f, named_and_deduced_params)::deduced_list \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_BASE_( \
+ f, named_and_deduced_params)::deduced_list \
, ::boost::parameter::aux::tag_keyword_arg \
>::type \
>::type type; \
}; \
}; \
- typedef CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id)<int> \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id);
+ typedef \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TPL_(id)<int> \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id) \
+ ;
// Constructor overloads (in the future to make this header shorter, some of
// this code could be moved into the boost_.hpp because it depends on macros
// from boost_.hpp).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TPARAM_DECL_PAREN_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TPARAM_DECL_PAREN_( \
r, id_params_args, p) \
/* NOTE: tparam type trait in pp-seq `(typename tparam)` used to pass */ \
/* param type via a metafunction instead of tparam name (can't use */ \
@@ -245,23 +251,23 @@
typename ::contract::aux::named_params::arg_type< \
/* argument list type */ \
typename \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_( \
BOOST_PP_TUPLE_ELEM(3, 0, id_params_args)):: \
template arg_list< \
BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE( \
BOOST_PP_TUPLE_ELEM(3, 2, id_params_args)), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_, \
BOOST_PP_TUPLE_ELEM(3, 2, id_params_args)) \
>::type \
/* param tag type */ \
- , CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG( \
+ , BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TAG( \
BOOST_PP_TUPLE_ELEM(3, 1, id_params_args), p) \
/* param default value type (only if optional) */ \
BOOST_PP_COMMA_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p))) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)))\
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_ \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)),\
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_TYPE_ \
, \
BOOST_PP_TUPLE_EAT(1) \
)(p) \
@@ -269,94 +275,102 @@
)) \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_DECL_PAREN_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_DECL_PAREN_( \
r, unused, p) \
( /* pp-seq parenthesis for func param name trait */ \
int /* param type not used in ctor def expansion so just use int */ \
/* use param value expr instead of just param name here (usually */ \
/* param name carries its value but for named params this expr */ \
- /* carries the param value-- cannot use CONTRACT_CONSTRUCTOR_ARG */ \
- /* macro because it has extra wrapping parenthesis around the */ \
- /* expr that will confuse the pp-parser here) */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
+ /* carries the param value-- cannot use */ \
+ /* BOOST_CONTRACT_CONSTRUCTOR_ARG macro because it has extra */ \
+ /* wrapping parenthesis around the expr that will confuse the */ \
+ /* pp-parser here) */ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
)
// Generate constructor definition func traits (which uses ARG).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEF_F_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEF_F_( \
id, f, named_and_deduced_params, arg_types) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS_REPLACE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_REPLACE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS_REPLACE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_REPLACE( \
f, \
template( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TPARAM_DECL_PAREN_, \
- (id, CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), arg_types), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TPARAM_DECL_PAREN_, \
+ ( \
+ id \
+ , \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f) \
+ , \
+ arg_types \
+ ), \
named_and_deduced_params) \
) \
), /* new func params: (<param-name>_type) <param-name> */ \
( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_DECL_PAREN_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_DECL_PAREN_, \
~, named_and_deduced_params) \
) \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_(r, z, id, tpl, k, f, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_(r, z, id, tpl, k, f, \
body_func, named_and_deduced_params, arg_types) \
/* NOTE: always use typename here because this is a func template */ \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f) \
: /* construct is member so access never empty and `:` always present */ \
template< \
BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(arg_types), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_DECL_, \
0 /* without default */) \
> \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f) ( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f) ( \
BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(arg_types), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_DECL_, \
arg_types) \
/* no named params if no arguments so , always follows here */ \
, typename ::boost::parameter::aux::match< \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id)\
, BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(arg_types), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_, ~) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TPARAM_, ~) \
>::type /* no actual param name (just used to resolve ctor call */ \
- = CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id)( \
+ = BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id)( \
/* default constructor */) \
, ::contract::aux::named_params::args< \
- typename CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_( \
- id)::template arg_list< \
+ typename \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id)::\
+ template arg_list< \
BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(arg_types), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_QUALIFIED_TPARAM_, \
arg_types) \
>::type \
- > CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_ = 0 \
+ > BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_ = 0 \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMMA_NAMED_PARAM_DECL_,\
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMMA_NAMED_PARAM_DECL_, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f), \
named_and_deduced_params) \
) \
- CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_CONSTRUCTOR_DEF_FORCE( \
id \
, 1 /* always in a template */ \
, k \
- , CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEF_F_(id, f, \
+ , BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEF_F_(id, f, \
named_and_deduced_params, arg_types) \
, body_func \
, ( \
BOOST_IDENTITY_TYPE(( \
::contract::aux::constructor_inits_eval< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
, ::contract::aux:: \
constructor_inits_eval_named_params_args_set \
> \
))( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_.set( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id)\
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_.set( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_TYPE_(id) \
(/* default constructor*/)( \
BOOST_PP_ENUM(BOOST_PP_SEQ_SIZE(arg_types), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_PARAM_, \
~) \
) \
) \
@@ -367,9 +381,9 @@
, 1 /* always force body (even if no contracts) for named args */ \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TUPLE_(r, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TUPLE_(r, \
z_arity_id_tpl_k_f_body_params_args, arg_types) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_(r \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_(r \
, BOOST_PP_TUPLE_ELEM(9, 0, z_arity_id_tpl_k_f_body_params_args) \
/* do not pass arity */ \
, BOOST_PP_TUPLE_ELEM(9, 2, z_arity_id_tpl_k_f_body_params_args) \
@@ -382,60 +396,62 @@
, arg_types \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_(r, arg_types) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_( \
+ r, arg_types) \
/* wraps arg types within pp-seq parenthesis so to make */ \
/* FOR_EACH_PRODUCT expand into another pp-seq */ \
( arg_types )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARITY_(z, arity, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARITY_(z, arity, \
id_tpl_k_f_body_params_args) \
/* need outer FOR_EACH to pass data (because FOR_EACH_PRODUCT does not */ \
/* relay any data) */ \
BOOST_PP_SEQ_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TUPLE_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_TUPLE_, \
(z, arity, BOOST_PP_TUPLE_REM(7) id_tpl_k_f_body_params_args),\
BOOST_PP_SEQ_FOR_EACH_PRODUCT( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_, \
BOOST_PP_SEQ_FIRST_N(arity, BOOST_PP_TUPLE_ELEM(7, 6, \
id_tpl_k_f_body_params_args))))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_HAS_DEFAULT_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_HAS_DEFAULT_( \
d, unused, p) \
BOOST_PP_BOOL(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)))
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OVERLOADS_(id, tpl, k, f, \
- body_func, named_and_deduced_params, arg_types_combinations) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OVERLOADS_( \
+ id, tpl, k, f, body_func, named_and_deduced_params, \
+ arg_types_combinations) \
BOOST_PP_REPEAT_FROM_TO( \
BOOST_PP_SUB(BOOST_PP_LIST_SIZE(named_and_deduced_params), \
/* count defaults (it could be 0) */ \
BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_HAS_DEFAULT_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAM_HAS_DEFAULT_, \
~, named_and_deduced_params))), \
/* INC to always include all params case in iterator */ \
BOOST_PP_INC(BOOST_PP_LIST_SIZE(named_and_deduced_params)), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARITY_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARITY_, \
(id, tpl, k, f, body_func, named_and_deduced_params, \
arg_types_combinations))
// All combinations of constructor template parameters to handle the generic
// named parameters (there combine the const/no-const to handle in/out/in-out).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMBINATIONS_ARG_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMBINATIONS_ARG_( \
r, unused, p) \
( ( /* tuple seq w/ special format used by Boost.Parameter combinations */ \
/* Boost.Parameter uses [deduced_]required, [deduced_]optional here */ \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_DEFAULT(p)), \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
deduced_optional \
, \
optional \
) \
, \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p)), \
deduced_required \
, \
required \
@@ -443,52 +459,54 @@
) \
, \
/* named qualified with optional out() or in_out() */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CLASSIFIED_NAME(p) \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TYPE_REQUIREMENT(p) \
, \
~ /* Boost.Parameter uses no default value for constructor */ \
) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_COMBINATIONS_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_COMBINATIONS_( \
named_and_deduced_params) \
/* re-use Boost.Parameter algorithm to cal seq of tparam combinations */ \
BOOST_PARAMETER_FUNCTION_FWD_COMBINATIONS( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMBINATIONS_ARG_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_COMBINATIONS_ARG_, \
~, named_and_deduced_params))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ALL_PARAMS_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ALL_PARAMS_( \
id, tpl, k, f, body_func, named_and_deduced_params) \
/* structs to deduce and match params */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_PARAMS_(id, tpl, k, f, \
named_and_deduced_params) \
/* actual constructor function definitions */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OVERLOADS_(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_OVERLOADS_(id, tpl, k, f, \
body_func, named_and_deduced_params, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_COMBINATIONS_(\
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_TYPES_COMBINATIONS_( \
named_and_deduced_params))
// PUBLIC //
// Public because used to implement the CONSTRUCTOR_ARG macro.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG(name) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG(name) \
/* don't wrap this expr within parenthesis at this level because it is */ \
/* used by other internal macros (you can program another ARG macro to */ \
/* wrap this in extra parenthesis) */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_.get()[ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_(name) \
- | CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_(name) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARGS_.get()[ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ARG_(name) \
+ | BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_DEFAULT_(name) \
]
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR(id, tpl, k, f, body_func) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ALL_PARAMS_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR( \
+ id, tpl, k, f, body_func) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR_ALL_PARAMS_( \
id, tpl, k, f, body_func, \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_/contracted.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_/contracted.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_/contracted.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,165 +5,172 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_HPP_
// PRIVATE //
// Contracted function traits.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_DECL_TYPE_(p) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_DECL_TYPE_(p) \
/* IMPORTANT: always by ref (also to support for in-out and out) */ \
/* however never add const because const is automatically added */ \
/* by Boost.Parameter overloads in order to distinguish in and out */ \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
typename ::boost::add_reference< \
) \
- CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
+ BOOST_CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_IS_OUT_OR_INOUT(p), \
>::type \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_TPARAM_DECL_PAREN_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_TPARAM_DECL_PAREN_( \
r, unused, p) \
- ( typename CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) )
+ ( typename BOOST_CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_PAREN_(r, unused, elem) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_PAREN_( \
+ r, unused, elem) \
( elem )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_PARAM_DECL_PAREN_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_PARAM_DECL_PAREN_( \
r, unused, p) \
- ( ( CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_DECL_TYPE_(p) ) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p) )
+ ( ( BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_DECL_TYPE_(p) ) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_CONCEPTS_REPLACE_(f, \
- concepts_sign) \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_CONCEPTS_REPLACE_( \
+ f, concepts_sign) \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAM_CONCEPTS(f)), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONCEPTS_REPLACE \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAM_CONCEPTS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONCEPTS_REPLACE \
, \
f BOOST_PP_TUPLE_EAT(2) \
)(f, concepts_sign)
// Generate contracted func signature (which only uses positional params).
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_F_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_F_( \
k, f, named_and_deduced_params) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS_REPLACE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME_REPLACE( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_CONCEPTS_REPLACE_( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_REPLACE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS_REPLACE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME_REPLACE( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_CONCEPTS_REPLACE_( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_REPLACE( \
f, /* new template params: Boost.Parameter's <param-name>_type */ \
template( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_TPARAM_DECL_PAREN_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_TPARAM_DECL_PAREN_, \
~, named_and_deduced_params) \
) \
), /* new concepts: parameter concepts (if any specified by user) */ \
requires( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_PAREN_, \
- ~, CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAM_CONCEPTS(f)) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_PAREN_, \
+ ~, BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAM_CONCEPTS(f)) \
) \
), /* new name (contracted function) */ \
- ( CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC(k, f) ) \
+ ( BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC(k, f) ) \
), /* new func params: (<param-name>_type) <param-name> */ \
( \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_PARAM_DECL_PAREN_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_PARAM_DECL_PAREN_, \
~, named_and_deduced_params) \
) \
)
// Contracted body function declaration.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_TPARAM_DECL_ENUM_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_TPARAM_DECL_ENUM_( \
r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
- typename CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p))
+ typename BOOST_CONTRACT_AUX_PARAMETER_BOOST_TYPE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_PARAM_DECL_ENUM_( \
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_PARAM_DECL_ENUM_( \
r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_DECL_TYPE_(p) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_DECL_TYPE_(p) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_DECL_( \
id, tpl, k, f, body_func, named_and_deduced_params) \
template< \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_TPARAM_DECL_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_TPARAM_DECL_ENUM_,\
~, named_and_deduced_params) \
> \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 1) /* allows empty result type */ \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, 1) /* allows empty result type */ \
/* keep original body func name (not contractedXnameXbody) so user can */ \
/* separate definition with usual BODY macro */ \
body_func ( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_PARAM_DECL_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_PARAM_DECL_ENUM_, \
~, named_and_deduced_params) \
) \
/* POLICY: Exception spec only apply to exceptions thrown by the body */ \
/* and not to exceptions thrown by contract handlers (if they are */ \
/* redefined to throw) or by this library implementation code */ \
- CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f)
+ BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC_(k, f) \
- CONTRACT_AUX_SYMBOL( (contracted)(CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) )
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC_(k, f) \
+ BOOST_CONTRACT_AUX_SYMBOL( \
+ (contracted)(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) )
// PUBLIC //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC(k, f) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC(k, f) \
/* constructor, non-static member, static member with enabled */ \
/* contracts (destructors have no param so no named params) */ \
BOOST_PP_IIF( \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
) \
) \
), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC_ \
, BOOST_PP_IIF( /* free function with enabled contracts */ \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
) \
), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC_ \
, \
/* use body name here so contracted function impl by body func */ \
/* when no contracts but still BODY can be used to defer func def */ \
- CONTRACT_AUX_FUNCTION_BODY_FUNC \
+ BOOST_CONTRACT_AUX_FUNCTION_BODY_FUNC \
))(k, f)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_F(k, f) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_F_(k, f, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_F(k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_F_(k, f, \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_DECL( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_DECL( \
id, tpl, k, f, body_func) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_DECL_( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_DECL_( \
id, tpl, k, f, body_func, \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_/function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_/function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_/function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,85 +5,89 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_HPP_
-#include <contract/aux_/macro/code_/named_params_/boost_.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_/boost_.hpp>
#include <boost/parameter.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TPARAM_NAME_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TPARAM_NAME_ENUM_( \
r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
/* here (but only here) we must use Boost.Parameter convention that */ \
/* postfix ..._type (even if that would generate a reserved symbol */ \
/* for a param name ending with _) */ \
- BOOST_PP_CAT(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p), _type)
+ BOOST_PP_CAT(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p), _type)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_PARAM_NAME_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_PARAM_NAME_ENUM_( \
r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_DEF_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_DEF_( \
id, tpl, k, f, named_and_deduced_params) \
{ \
- return CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_FUNC(k, f)< \
+ return BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_FUNC(k, f)\
+ < \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TPARAM_NAME_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TPARAM_NAME_ENUM_, \
~, named_and_deduced_params) \
>( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_PARAM_NAME_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_PARAM_NAME_ENUM_, \
~, named_and_deduced_params) \
); \
}
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_(r, unused, elem) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_(r, unused, elem) \
elem
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_(id, tpl, k, f, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_(id, tpl, k, f, \
named_required_boost_params, named_optional_boost_params, \
deduced_required_boost_params, deduced_optional_boost_params) \
- BOOST_PP_IIF(BOOST_PP_COMPL(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)), \
+ BOOST_PP_IIF(BOOST_PP_COMPL( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)), \
BOOST_PARAMETER_FUNCTION \
, BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f))), \
BOOST_PARAMETER_CONST_MEMBER_FUNCTION \
, \
BOOST_PARAMETER_MEMBER_FUNCTION \
))( \
( /* paren wrap result type commas in Boost.Parameter */ \
/* this should always have result type but still checking size */ \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 1 /* allows empty result type */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE( \
+ f, 1 /* allows empty result type */) \
), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f) \
/* `func`, `operator==`, etc */ \
- CONTRACT_AUX_CODE_NAME(CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
+ BOOST_CONTRACT_AUX_CODE_NAME( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
, \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))), \
- CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))), \
+ BOOST_CONTRACT_AUX_CONFIG_NAMED_PARAMETER_TAG_NAMESPACE_DEFAULT \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
- )(CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMESPACE \
+ )(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)) \
, \
/* (induced) named params `(required ...) (optinal ...)` */ \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(named_required_boost_params), \
(required \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
~, named_required_boost_params) \
) \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(named_optional_boost_params), \
(optional \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
~, named_optional_boost_params) \
) \
) \
@@ -100,7 +104,7 @@
deduced_required_boost_params), \
(required \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
~, deduced_required_boost_params) \
) \
) \
@@ -108,7 +112,7 @@
deduced_optional_boost_params), \
(optional \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_ELEM_, \
~, deduced_optional_boost_params) \
) \
) \
@@ -116,19 +120,19 @@
deduced_required_boost_params, \
deduced_optional_boost_params))) \
) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_DEF_(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_DEF_(id, tpl, k, f, \
/* these are all named-and-deduced params in their original */ \
/* param traits format (while the other ..._boost_params in */ \
/* this function are in Boost.Parameter format) */ \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TUPLE_(id, tpl, k, f, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TUPLE_(id, tpl, k, f, \
namedreq_namedopt, deducedreq_deducedopt) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_(id, tpl, k, f, \
BOOST_PP_TUPLE_ELEM(2, 0, namedreq_namedopt), \
BOOST_PP_TUPLE_ELEM(2, 1, namedreq_namedopt), \
BOOST_PP_TUPLE_ELEM(2, 0, deducedreq_deducedopt), \
@@ -136,14 +140,14 @@
// PUBLIC //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TUPLE_(id, tpl, k, f, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION_TUPLE_(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_REQOPT( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_class_template.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_class_template.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_class_template.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HPP_
#include <boost/preprocessor/comparison/greater_equal.hpp>
#include <boost/parameter.hpp>
@@ -15,44 +15,45 @@
// Arg template param.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_( \
unused0, n, unused1) /* unused so it can be used with ENUM, etc */ \
- CONTRACT_AUX_SYMBOL( (NamedTParamsArg)(n) )
+ BOOST_CONTRACT_AUX_SYMBOL( (NamedTParamsArg)(n) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_ENUM_( \
r, arity_minus_defaults, i, t) \
BOOST_PP_COMMA_IF(i) \
- typename CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_(~, i, ~) \
+ typename BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_(~, i, ~) \
BOOST_PP_EXPR_IIF(BOOST_PP_GREATER_EQUAL(i, arity_minus_defaults), \
= ::boost::parameter::void_ \
)
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_PAREN_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_PAREN_( \
z, unused, i, t) \
- ( typename CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_(~, i, ~) )
+ ( typename BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_( \
+ ~, i, ~) )
// Args template param.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ \
- CONTRACT_AUX_SYMBOL( (NamedTParamsArgs) )
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ \
+ BOOST_CONTRACT_AUX_SYMBOL( (NamedTParamsArgs) )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_PARAM_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_PARAM_ENUM_( \
r, tparams, i, t) \
BOOST_PP_COMMA_IF(i) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
::boost::parameter::optional< \
, \
::boost::parameter::required< \
) \
/* tag (possibly deduced) */ \
- BOOST_PP_EXPR_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
::boost::parameter::deduced< \
) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
- BOOST_PP_EXPR_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_DEDUCE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
> \
) \
/* NOTE: type requirement (if there is any type requirement then it */ \
@@ -61,109 +62,115 @@
/* template parameter and only template parameters are supported so */ \
/* no need to check if KIND ends in `requires` in this case) */ \
BOOST_PP_COMMA_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t))) \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)))\
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)),\
BOOST_PP_ARRAY_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)) \
+ )(BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)) \
>
// Original template params.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_(\
r, tparams, t) \
- , typename CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) = typename \
- ::boost::parameter::value_type< \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ \
- , CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
+ , typename BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) = \
+ typename ::boost::parameter::value_type \
+ < \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ \
+ , BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_TEMPLATE_TAG(tparams, t) \
BOOST_PP_COMMA_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t))) \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t))) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
BOOST_PP_ARRAY_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)) \
+ )(BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)) \
>::type
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_PAREN_(\
+#define \
+BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_PAREN_( \
r, unused, t) \
- ( typename CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) )
+ ( typename BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) )
// Template declaration.
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HAS_DEFAULT_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HAS_DEFAULT_( \
d, unused, t) \
BOOST_PP_BOOL(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)))
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DEFAULT_COUNT_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DEFAULT_COUNT_( \
named_and_deduced_tparams) \
BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HAS_DEFAULT_,\
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_HAS_DEFAULT_,\
~, named_and_deduced_tparams))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL_( \
template01, tparams, named_and_deduced_tparams) \
/* open template<...> (even if no tparams for specializations) */ \
BOOST_PP_EXPR_IIF(template01, template< ) \
/* Arg */ \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_ENUM_,\
BOOST_PP_SUB(BOOST_PP_LIST_SIZE(named_and_deduced_tparams), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DEFAULT_COUNT_( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DEFAULT_COUNT_( \
named_and_deduced_tparams)), \
named_and_deduced_tparams) \
/* Args */ \
- , typename CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ = \
+ , typename BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ = \
typename ::boost::parameter::parameters< \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_PARAM_ENUM_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_PARAM_ENUM_, \
tparams, named_and_deduced_tparams) \
>::bind< \
BOOST_PP_ENUM(BOOST_PP_LIST_SIZE(named_and_deduced_tparams), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_, ~) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_, ~) \
>::type \
/* original template params */ \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_, \
tparams, named_and_deduced_tparams) \
/* close template<...> */ \
BOOST_PP_EXPR_IIF(template01, > )
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C_(c, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C_(c, \
named_and_deduced_tparams) \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_REPLACE( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_REPLACE( \
c, /* new template params: without named/deduced syntax */ \
template( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_PAREN_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARG_DECL_PAREN_, \
~, named_and_deduced_tparams) \
- ( typename CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ ) \
+ ( typename \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_ARGS_ ) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_PAREN_, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_COMMA_TPARAM_DECL_PAREN_,\
~, named_and_deduced_tparams) \
) \
)
// PUBLIC //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL( \
template01, tparams) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL_(template01, tparams, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_DECL_( \
+ template01, tparams, \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(tparams), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED(tparams)))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(tparams), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED(tparams)))
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C(c) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C_(c, \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C(c) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CLASS_TEMPLATE_POSITIONAL_C_(c, \
BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))))
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS( \
+ c))))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/named_params_func.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/named_params_func.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/named_params_func.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,62 +5,63 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_HPP_
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_HPP_
-#include <contract/aux_/macro/code_/named_params_/function.hpp>
-#include <contract/aux_/macro/code_/named_params_/constructor.hpp>
-#include <contract/aux_/macro/code_/named_params_/contracted.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_/function.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_/constructor.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_/contracted.hpp>
#include <boost/preprocessor/punctuation/paren_if.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_FREE_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_FREE_( \
id, tpl, k, f, contracted_f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
id, tpl, k, contracted_f, body_func) ; /* forward declaration */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_BODY_DECL( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_BODY_DECL( \
id, tpl, k, f, body_func) \
/* user's function definition { ... } (and try-blocks) follows here */
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_MEMBER_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_MEMBER_( \
id, tpl, k, f, contracted_f, body_func) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNCTION(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
id, tpl, k, contracted_f, body_func) \
/* user's function definition { ... } (and try-blocks) follows here */
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_CONSTRUCTOR_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_CONSTRUCTOR_( \
id, tpl, k, f, contracted_f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_CONTRACT( \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BOOST_CONTRACT( \
id, tpl, k, contracted_f, body_func) \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR( \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_CONSTRUCTOR( \
id, tpl, k, f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE( \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE( \
id, tpl, k, contracted_f, body_func, 1 /* named force body */) \
/* user's function definition { ... } (and try-blocks) follows here */
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_( \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_( \
id, tpl, k, f, contracted_f, body_func) \
/* destructors have no parameters so we'll never get here */ \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_CONSTRUCTOR_ \
- , BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_MEMBER_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_CONSTRUCTOR_ \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_MEMBER_ \
, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_FREE_ \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_FREE_ \
))(id, tpl, k, f, contracted_f, body_func)
// PUBLIC //
-#define CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC(id, tpl, k, f, body_func) \
+#define BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC(id, tpl, k, f, body_func) \
/* NOTE: even if named params are always impl using templates, tpl */ \
/* should not be forced to 1 here because tpl indicates if the */ \
/* enclosing scope and not the impl is type-dependent */ \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_(id, tpl /* keep tpl */, k, f, \
- CONTRACT_AUX_CODE_NAMED_PARAMS_CONTRACTED_F(k, f), body_func)
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC_(id, tpl /* keep tpl */, k, f, \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_BOOST_CONTRACTED_F(k, f), \
+ body_func)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/new.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/new.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/new.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,46 +5,47 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_NEW_HPP_
-#define CONTRACT_AUX_CODE_NEW_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_NEW_HPP_
+#define BOOST_CONTRACT_AUX_CODE_NEW_HPP_
-#include <contract/aux_/mpl_assert.hpp>
-#include <contract/aux_/macro/code_/virtual.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/macro/code_/virtual.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_NEW_CHECK_BASE_(r, n, id_f) \
- CONTRACT_AUX_MPL_ASSERT_MSG( \
+#define BOOST_CONTRACT_AUX_CODE_NEW_CHECK_BASE_(r, n, id_f) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
/* base == class && !has_virtual_function_tag<base::func> */ \
(::boost::mpl::or_< \
::boost::is_same< \
- CONTRACT_AUX_CODE_BASE_TYPE(n) \
- , CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ , BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
> \
- , ::boost::mpl::not_< CONTRACT_AUX_CODE_HAS_VIRTUAL( \
+ , ::boost::mpl::not_< BOOST_CONTRACT_AUX_CODE_HAS_VIRTUAL( \
BOOST_PP_TUPLE_ELEM(2, 0, id_f), BOOST_PP_TUPLE_ELEM(2, 1, \
- id_f), CONTRACT_AUX_CODE_BASE_TYPE(n)) > \
+ id_f), BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n)) > \
>::value) \
, BOOST_PP_SEQ_CAT( \
(ERROR_matching_virtual_function_already_declared_by_base_class_number_) \
(BOOST_PP_INC(n))(_at_line_)(BOOST_PP_TUPLE_ELEM(2, 0, id_f))) \
- , (types< CONTRACT_AUX_CODE_BASE_TYPE(n) >) \
+ , (types< BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) >) \
); /* MPL assert requires trailing `;` */
-#define CONTRACT_AUX_CODE_NEW_CHECK_(id, tpl, k, f) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_NEW_CHECK_BASE_, (id, f)) \
+#define BOOST_CONTRACT_AUX_CODE_NEW_CHECK_(id, tpl, k, f) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_NEW_CHECK_BASE_, (id, f)) \
// PUBLIC //
-#define CONTRACT_AUX_CODE_NEW_CHECK(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_NEW(f)),\
+#define BOOST_CONTRACT_AUX_CODE_NEW_CHECK(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_PP_IS_EMPTY(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NEW( \
+ f)),\
BOOST_PP_TUPLE_EAT(4) \
, \
- CONTRACT_AUX_CODE_NEW_CHECK_ \
+ BOOST_CONTRACT_AUX_CODE_NEW_CHECK_ \
)(id, tpl, k, f)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/oldof.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/oldof.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/oldof.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,135 +5,145 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_OLDOF_HPP_
-#define CONTRACT_AUX_CODE_OLDOF_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_OLDOF_HPP_
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_HPP_
-#include <contract/aux_/bind_old.hpp>
-#include <contract/aux_/subcontract/oldof.hpp>
-#include <contract/aux_/macro/code_/oldof_type.hpp>
-#include <contract/aux_/macro/code_/postcondition.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
-#include <contract/detail/preprocessor/traits/func_param.hpp> // p
-#include <contract/detail/preprocessor/traits/oldof.hpp> // o
+#include <boost/contract/aux_/bind_old.hpp>
+#include <boost/contract/aux_/subboost/contract/oldof.hpp>
+#include <boost/contract/aux_/macro/code_/oldof_type.hpp>
+#include <boost/contract/aux_/macro/code_/postcondition.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/detail/preprocessor/traits/func_param.hpp> // p
+#include <boost/contract/detail/preprocessor/traits/oldof.hpp> // o
#include <boost/function.hpp>
#include <list>
// PRIVATE //
-#define CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_DECL_(r, tpl_f, p) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_DECL_(r, tpl_f, p) \
, \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
BOOST_PP_TUPLE_ELEM(2, 1, tpl_f)) \
::contract::aux::arg_const< \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p)) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))\
>::type \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_NAME_(r, unused, p) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_NAME_(r, unused, p) \
, \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_OLDOF_COMMA_TYPE_(r, tpl_f, i, o) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_TYPE_(r, tpl_f, i, o) \
, \
- CONTRACT_AUX_CODE_OLDOF_TYPE(CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, o, i)
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, o, i)
-#define CONTRACT_AUX_CODE_NOOLD_COMMA_TYPE_(z, n, unused) \
+#define BOOST_CONTRACT_AUX_CODE_NOOLD_COMMA_TYPE_(z, n, unused) \
, \
::contract::aux::void_old
-#define CONTRACT_AUX_CODE_OLDOF_COMMA_EXPR_(r, unused, o) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_EXPR_(r, unused, o) \
, \
- CONTRACT_DETAIL_PP_OLDOF_TRAITS_EXPR(o)
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_EXPR(o)
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_YES_(r, tpl_f, i, o) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_YES_(r, tpl_f, i, o)\
typedef \
- CONTRACT_AUX_CODE_OLDOF_DEDUCE_AUTO_TYPE( \
- CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, o, i) \
- CONTRACT_AUX_CODE_OLDOF_TYPE(CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, \
- o, i) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_DEDUCE_AUTO_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, o, i) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01 tpl_f, o, i) \
;
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_(r, tpl_f, i, o) \
- BOOST_PP_IF(BOOST_PP_ARRAY_SIZE(CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_(r, tpl_f, i, o) \
+ BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
BOOST_PP_TUPLE_EAT(4) /* explicit old-of type (no `auto`) */ \
, \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_YES_ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_YES_ \
)(r, tpl_f, i, o)
// Expand to nothing if old-of type is not `auto`, otherwise deduce types.
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_(id, tpl, k, f) \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_, \
- (tpl, f), CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f))
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_(id, tpl, k, f) \
+ BOOST_PP_LIST_FOR_EACH_I( \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_TYPEDEFS_, \
+ (tpl, f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f))
-#define CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
- CONTRACT_AUX_SYMBOL( (obj) )
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
+ BOOST_CONTRACT_AUX_SYMBOL( (obj) )
-#define CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_(id, tpl, k, f, oldof_auto_types) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_( \
+ id, tpl, k, f, oldof_auto_types) \
( \
/* function_type for a dummy param used to resolve overloading */ \
/* (because pre add const to args and obj so it might have same */ \
/* signature as of overloaded func with const arg and obj) */ \
/* not named so it cannot be used by mistake */ \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
/* constructor have static old-of but non-static post so this is */ \
/* not accessible from static old-of but obj needs to be passed */ \
/* as a func param so it can be bound to post func */ \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_CODE_CLASS_TYPE const* const \
- CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE const* const \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
) \
/* params and objects are provided because some of the old-of */ \
/* expr can depend on them (but they must be used as const) */ \
/* all params are const (and ref) for const-correctness */ \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_DECL_, (tpl, f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_DECL_, (tpl, f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
- k, f), \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f),\
const /* const obj for const-correctness (unless static) */ \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
-#define CONTRACT_AUX_CODE_OLDOF_(id, tpl, k, f, oldof_auto_types) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), private:) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_(id, tpl, k, f, oldof_auto_types) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ private: \
+ ) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f)), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f)), \
/* POLICY: static also for constructor because no obj yet exists */ \
/* when evaluating old-of expr becore ctor body execution */ \
static \
) \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
bound_postcondition_type \
- CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_(id, tpl, k, f, oldof_auto_types) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_( \
+ id, tpl, k, f, oldof_auto_types) \
{ \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPEOF_(id, tpl, k, f) \
return ::contract::aux::bind_old< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
body_type \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_OLDOF_COMMA_TYPE_, \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_TYPE_,\
(tpl, f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)) \
- BOOST_PP_REPEAT(BOOST_PP_SUB(CONTRACT_CONFIG_OLDOF_MAX, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS( \
+ f)) \
+ BOOST_PP_REPEAT(BOOST_PP_SUB(BOOST_CONTRACT_CONFIG_OLDOF_MAX, \
BOOST_PP_LIST_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS( \
f))), \
- CONTRACT_AUX_CODE_NOOLD_COMMA_TYPE_, ~) \
+ BOOST_CONTRACT_AUX_CODE_NOOLD_COMMA_TYPE_, ~) \
>( \
/* post function to bind */ \
& /* func ptr */ \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE :: \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE :: \
) \
BOOST_PP_EXPR_IIF( \
/* post is a func tpl ptr iif oldof_auto_types != nil */ \
@@ -142,149 +152,156 @@
BOOST_PP_BITAND( \
tpl \
, BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types) \
- , CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)\
+ , BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)\
) \
) \
), \
template \
) \
- CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f)))), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f)))), \
< \
) \
BOOST_PP_LIST_ENUM(oldof_auto_types) \
BOOST_PP_COMMA_IF(BOOST_PP_BITAND( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(\
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(\
f))))) \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f))) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f)))), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f)))), \
> \
) \
/* object (only for non-static member and ctor) */ \
BOOST_PP_COMMA_IF( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
- k, f)) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f)) \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
- k, f), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f), \
this \
) \
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_PP_COMMA_IF( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)) \
+ BOOST_PP_EXPR_IIF( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
/* constructor old-of are static (because no obj exist yet) */ \
/* but constructor post are not static (because obj exist) */ \
/* so special param (not this) is used to bind obj to post */ \
- CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_PARAM_OBJ_ \
) \
/* old values */ \
- BOOST_PP_LIST_FOR_EACH(CONTRACT_AUX_CODE_OLDOF_COMMA_EXPR_, ~, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)) \
+ BOOST_PP_LIST_FOR_EACH(BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_EXPR_, \
+ ~, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS( \
+ f)) \
); \
}
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_COMMA_BASE_( \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_COMMA_BASE_( \
z, n, id_tpl_k_f) \
, dynamic_cast< \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f), n) \
const \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE( \
BOOST_PP_TUPLE_ELEM(4, 3, id_tpl_k_f)) \
* const \
>(this) \
/* call function to bind all (base, base's base, etc) oldofs */ \
- , CONTRACT_AUX_CODE_FUNC_PTR( \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_PTR( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f) \
, BOOST_PP_TUPLE_ELEM(4, 1, id_tpl_k_f) \
, BOOST_PP_TUPLE_ELEM(4, 2, id_tpl_k_f) \
, BOOST_PP_TUPLE_ELEM(4, 3, id_tpl_k_f) \
- , BOOST_PP_EXPAND(CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_FUNC \
+ , BOOST_PP_EXPAND( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_FUNC \
id_tpl_k_f) \
- , CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE( \
+ , BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f), n) \
)
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_RESULT_TYPE_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_RESULT_TYPE_( \
+ id, tpl, k, f) \
::std::list< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
bound_postcondition_type \
>
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_(id, tpl, k, f) \
public: /* must be public for subcontracting */ \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
- CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_RESULT_TYPE_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_(id, tpl, k, f, oldof_auto_types) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_RESULT_TYPE_( \
+ id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_PARAMS_DECL_(id, tpl, k, f, oldof_auto_types)\
{ \
return ::contract::aux::subcontract_oldof< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
this \
- , CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, \
- CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_COMMA_BASE_, \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_COMMA_BASE_, \
(id, tpl, k, f)) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
); \
}
// PUBLIC //
-#define CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
- (oldof))
-
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+ (oldof_))
+
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(subcontracted_oldof))
-#define CONTRACT_AUX_CODE_OLDOF(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
BOOST_PP_TUPLE_EAT(5) \
, \
- CONTRACT_AUX_CODE_OLDOF_ \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES( \
- CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f))) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f), \
- CONTRACT_AUX_CODE_SUBCONTRACTED_OLDOF_ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_ \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f))) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f), \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_OLDOF_ \
, \
/* ctor and dtor subcontract via base-class creation rules */ \
BOOST_PP_TUPLE_EAT(4) \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/oldof_type.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/oldof_type.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/oldof_type.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,71 +5,73 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_OLDOF_TYPE_HPP_
-#define CONTRACT_AUX_CODE_OLDOF_TYPE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_HPP_
-#include <contract/aux_/oldof.hpp>
-#include <contract/detail/preprocessor/traits/oldof.hpp> // o
+#include <boost/contract/aux_/oldof.hpp>
+#include <boost/contract/detail/preprocessor/traits/oldof.hpp> // o
#include <boost/typeof/typeof.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index) \
- CONTRACT_AUX_SYMBOL( (Old) (index) )
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index) \
+ BOOST_CONTRACT_AUX_SYMBOL( (Old) (index) )
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_APPEND_(index, autotypes) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_APPEND_(index, autotypes) \
BOOST_PP_LIST_APPEND(autotypes, \
- (CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index), BOOST_PP_NIL))
+ (BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index), BOOST_PP_NIL))
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_IDENTITY_(index, autotypes) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_IDENTITY_(index, autotypes) \
autotypes
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_(d, index_autotypes, o) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_(d, index_autotypes, o) \
( \
BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(2, 0, index_autotypes)) \
, \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_IDENTITY_ \
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_IDENTITY_ \
, \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_APPEND_ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_APPEND_ \
)(BOOST_PP_TUPLE_ELEM(2, 0, index_autotypes), \
BOOST_PP_TUPLE_ELEM(2, 1, index_autotypes)) \
)
-#define CONTRACT_AUX_CODE_OLDOF_TYPE_AUTO_(typename01, o, index) \
- /* just type name here, aux::oldof already applied to typeof deduction */ \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index)
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_AUTO_(typename01, o, index) \
+ /* just type name here, aux::oldof_ already applied to typeof deduction */ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPE_(index)
-#define CONTRACT_AUX_CODE_OLDOF_TYPE_SPECIFIED_(typename01, o, index) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_SPECIFIED_(typename01, o, index) \
BOOST_PP_EXPR_IIF(typename01, typename) \
- ::contract::aux::oldof< \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)) \
+ ::contract::aux::oldof_< \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)) \
>::type
// PUBLIC //
-#define CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, index) \
- BOOST_PP_IF(BOOST_PP_ARRAY_SIZE(CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
- CONTRACT_AUX_CODE_OLDOF_TYPE_SPECIFIED_ \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, index) \
+ BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_TYPE(o)), \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_SPECIFIED_ \
, \
- CONTRACT_AUX_CODE_OLDOF_TYPE_AUTO_ \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE_AUTO_ \
)(typename01, o, index)
-#define CONTRACT_AUX_CODE_OLDOF_DEDUCE_AUTO_TYPE(typename01, o, index) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_DEDUCE_AUTO_TYPE(typename01, o, index) \
BOOST_PP_EXPR_IIF(typename01, typename) \
- ::contract::aux::oldof< \
+ ::contract::aux::oldof_< \
BOOST_PP_IIF(typename01, \
/* dependent type context Boost.Typeof (no typename needed) */ \
BOOST_TYPEOF_TPL \
, \
BOOST_TYPEOF \
- )(CONTRACT_DETAIL_PP_OLDOF_TRAITS_EXPR(o)) \
+ )(BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_EXPR(o)) \
>::type
-#define CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES(typename01, oldofs) \
+#define BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES(typename01, oldofs) \
BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_LIST_FOLD_LEFT( \
- CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_, (0, BOOST_PP_NIL), oldofs))
+ BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES_, (0, BOOST_PP_NIL), \
+ oldofs))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/override.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/override.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/override.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,11 +5,11 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_OVERRIDE_HPP_
-#define CONTRACT_AUX_CODE_OVERRIDE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_OVERRIDE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_OVERRIDE_HPP_
-#include <contract/aux_/mpl_assert.hpp>
-#include <contract/aux_/macro/code_/virtual.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/macro/code_/virtual.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/and.hpp>
@@ -17,22 +17,22 @@
// PRIVATE //
-#define CONTRACT_AUX_CODE_OVERRIDE_CONDITION_OR_BASE_(r, n, id_f) \
+#define BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION_OR_BASE_(r, n, id_f) \
/* (base != class && has_virtual_function_tag<base::func>) || ... */ \
BOOST_PP_EXPR_IF(n, ||) \
(::boost::mpl::and_< \
::boost::mpl::not_< ::boost::is_same< \
- CONTRACT_AUX_CODE_BASE_TYPE(n) \
- , CONTRACT_AUX_CODE_CLASS_TYPE \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ , BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
> > \
- , CONTRACT_AUX_CODE_HAS_VIRTUAL(BOOST_PP_TUPLE_ELEM(2, 0, id_f), \
+ , BOOST_CONTRACT_AUX_CODE_HAS_VIRTUAL(BOOST_PP_TUPLE_ELEM(2, 0, id_f), \
BOOST_PP_TUPLE_ELEM(2, 1, id_f), \
- CONTRACT_AUX_CODE_BASE_TYPE(n)) \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n)) \
>::value)
-#define CONTRACT_AUX_CODE_OVERRIDE_CHECK_(id, tpl, k, f) \
- CONTRACT_AUX_MPL_ASSERT_MSG( \
- CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_OVERRIDE_CHECK_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
+ BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f) \
, BOOST_PP_SEQ_CAT( \
(ERROR_no_base_class_declares_matching_virtual_function_to_override_at_line_)\
(id)) \
@@ -41,15 +41,16 @@
// PUBLIC //
-#define CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f) \
- ( BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_OVERRIDE_CONDITION_OR_BASE_, (id, f)) ) \
-
-#define CONTRACT_AUX_CODE_OVERRIDE_CHECK(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_OVERRIDE(f)),\
+#define BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f) \
+ ( BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION_OR_BASE_, (id, f)) ) \
+
+#define BOOST_CONTRACT_AUX_CODE_OVERRIDE_CHECK(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OVERRIDE(f)), \
BOOST_PP_TUPLE_EAT(4) \
, \
- CONTRACT_AUX_CODE_OVERRIDE_CHECK_ \
+ BOOST_CONTRACT_AUX_CODE_OVERRIDE_CHECK_ \
)(id, tpl, k, f)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/postcondition.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/postcondition.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/postcondition.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,15 +5,15 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_POSTCONDITION_HPP_
-#define CONTRACT_AUX_CODE_POSTCONDITION_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_POSTCONDITION_HPP_
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_HPP_
-#include <contract/aux_/identity_equal.hpp>
-#include <contract/aux_/uninitialized.hpp>
-#include <contract/aux_/macro/code_/assertion_func.hpp>
-#include <contract/aux_/macro/code_/oldof.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
-#include <contract/detail/preprocessor/traits/oldof.hpp> // o
+#include <boost/contract/aux_/identity_equal.hpp>
+#include <boost/contract/aux_/uninitialized.hpp>
+#include <boost/contract/aux_/macro/code_/assertion_func.hpp>
+#include <boost/contract/aux_/macro/code_/oldof.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/detail/preprocessor/traits/oldof.hpp> // o
#include <boost/preprocessor/list/adt.hpp>
#include <boost/preprocessor/list/filter.hpp>
@@ -24,68 +24,72 @@
// cannot be remove by pp (the equality comparison is done with a special
// identity_equal type `var == identity_equal()` which redefines == to return a
// const& to var itself).
-#define CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_(assignment) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_( \
+ assignment) \
/* it is legal to pp-cat `= ## =` to `==` (see C++03 standard) */ \
BOOST_PP_CAT(assignment, =) ::contract::aux::identity_equal()
-#define CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_DECL_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_DECL_( \
r, typename01, i, o) \
, \
BOOST_PP_EXPR_IIF(typename01, typename) \
::contract::aux::arg_const< \
- CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, i) >::type \
- CONTRACT_DETAIL_PP_OLDOF_TRAITS_ASSIGNMENT(o) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, i) >::type \
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_ASSIGNMENT(o) \
/* old-of assignment syntax has trailing `=` (which cannot be removed */ \
/* by pp) so it must be handled as a default param and it is set to */ \
/* uninitialized data to avoid requiring a default constructor for the */ \
/* old-of type-- this is OK because this default param value is never */ \
/* used (func call always specify this param) */ \
::contract::aux::uninitialized< \
- CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, i) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF_TYPE(typename01, o, i) \
>::value()
-#define CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_CONSTREF_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_CONSTREF_(\
r, tpl, i, o) \
, \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_( \
- CONTRACT_DETAIL_PP_OLDOF_TRAITS_ASSIGNMENT(o))
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_( \
+ BOOST_CONTRACT_DETAIL_PP_OLDOF_TRAITS_ASSIGNMENT(o))
-#define CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_DECL_(r, tpl_f, p) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_DECL_(r, tpl_f, p) \
, \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
BOOST_PP_TUPLE_ELEM(2, 1, tpl_f)) \
::contract::aux::arg_const< \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p)) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))\
>::type \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_NAME_(r, tpl, p) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_NAME_(r, tpl, p) \
, \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_DECL_ENUM_(r, unused, i, type) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_DECL_ENUM_( \
+ r, unused, i, type) \
BOOST_PP_COMMA_IF(i) \
typename type
-#define CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_NAME_ENUM_(r, unused, i, type) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_NAME_ENUM_( \
+ r, unused, i, type) \
BOOST_PP_COMMA_IF(i) \
type
-#define CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_DECL_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_DECL_( \
+ id, tpl, k, f) \
/* type (it is void_result for void result type) */ \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
::contract::aux::result_const< \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* don't allow empty result */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE( \
+ f, 0 /* don't allow empty result */) \
>::type \
/* result parameter name and assignment */ \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT( \
- f)), \
- CONTRACT_AUX_SYMBOL( (unused_result)(id) ) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT(f)), \
+ BOOST_CONTRACT_AUX_SYMBOL( (unused_result)(id) ) \
= /* must have trailing assignment symbol */ \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT \
)(f) \
/* result assignment syntax has trailing `=` (which cannot be removed */ \
/* by pp) so it must be handled as a default param and it is set to */ \
@@ -93,100 +97,108 @@
/* result type-- this is OK because this default param value is never */ \
/* used (func call always specify this param) */ \
::contract::aux::uninitialized< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
::contract::aux::result_const< \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* don't allow empty result */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, \
+ 0 /* don't allow empty result */) \
>::type \
>::value()
-#define CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_CONSTREF_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_CONSTREF_( \
+ id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSIGNMENT_TO_CONSTREF_( \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT(\
- f)), \
- CONTRACT_AUX_SYMBOL( (unused_result)(id) ) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT(f)), \
+ BOOST_CONTRACT_AUX_SYMBOL( (unused_result)(id) ) \
= /* must have trailing assignment symbol */ \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT \
)(f) \
)
-#define CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_( \
+ id, tpl, k, f) \
/* statically assert that auto `result = return` can be specified */ \
/* only if result type is not void */ \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT(f)),\
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_RESULT_ASSIGNMENT(f)), \
BOOST_PP_TUPLE_EAT(3) \
, \
- CONTRACT_AUX_MPL_ASSERT_MSG \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG \
)( \
/* extra paren around static assert condition wrap eventual commas */ \
( !::boost::is_void< \
/* this type will always be void if no result type is */ \
/* specified in func decl (e.g., for ctor) but it might or */ \
/* not be void otherwise */ \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
result_type \
>::value ) \
, \
- BOOST_PP_CAT(ERROR_postconditions_cannot_access_return_value_for_function_returning_void_at_line_, id) \
+ BOOST_PP_CAT( \
+ERROR_postconditions_cannot_access_return_value_for_function_returning_void_at_line_, \
+ id) \
, \
- (types< CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
+ (types< BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) :: \
result_type >) \
); /* MPL assert requires trailing `;` */
-#define CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_(id, tpl, k, f, \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_(id, tpl, k, f, \
oldof_auto_types, function_name, is_assertion, dispatch_param) \
BOOST_PP_TUPLE_TO_LIST( /* pp-list for tparams unwrapped commas */ \
BOOST_PP_MAX(1, BOOST_PP_ADD( /* always at least 1 elem in tuple */ \
BOOST_PP_ADD(BOOST_PP_LIST_SIZE(oldof_auto_types) \
- , CONTRACT_AUX_CODE_TEMPLATE_COUNT( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))) \
+ , BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))) \
, is_assertion /* add 1 if true, 0 otherwise */ \
)) \
, ( \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), private:) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ private: \
+ ) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(is_assertion, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f))), \
template< \
) \
/* old-of tparams */ \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_DECL_ENUM_, ~, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_DECL_ENUM_, ~,\
oldof_auto_types) \
/* actual tparams */ \
BOOST_PP_COMMA_IF(BOOST_PP_BITAND( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f))))) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL(0, /* no `template<` and `>` */ \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f))))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ 0, /* no `template<` and `>` */ \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
/* unused tparam to delay assertion-func compilation */ \
BOOST_PP_COMMA_IF(BOOST_PP_BITAND(is_assertion, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f)))))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f)))))) \
BOOST_PP_EXPR_IIF(is_assertion, \
- typename CONTRACT_AUX_SYMBOL( (Unused)(id) ) \
+ typename BOOST_CONTRACT_AUX_SYMBOL( (Unused)(id) ) \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(is_assertion, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f))), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f))), \
> \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL(BOOST_PP_BITOR( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f) \
- , CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k))), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
+ k, f) \
+ , BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k))), \
/* static unless non-static member function or constructor */ \
static \
) \
@@ -200,156 +212,162 @@
/* (because pre add const to args and obj so it might have same */ \
/* signature as of overloaded func with const arg and obj) */ \
/* not named so it cannot be used by mistake */ \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
/* all params are const (and ref) for const-correctness */ \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_DECL_, \
(tpl, f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
/* all old-ofs are const (and ref) for const-correctness */ \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_DECL_, \
/* use typename keyword if tpl or there are */ \
/* auto-typed old-ofs (because this is tpl in that case) */\
BOOST_PP_BITOR(tpl, BOOST_PP_BITOR( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
BOOST_PP_LIST_IS_CONS(oldof_auto_types))), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)) \
/* result is const (and ref) for const-reoccrectness */ \
- , CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_DECL_(id, tpl, k, f)\
+ , BOOST_CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_DECL_( \
+ id, tpl, k, f) \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f) \
- , CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
+ k, f) \
+ , BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k)), \
/* object `this` is const for const-correctness (unless static) */ \
const \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
) )
-#define CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a) \
- CONTRACT_AUX_SYMBOL( (postcondition_assertion) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_SYMBOL( (postcondition_assertion) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
-#define CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_DECL_TOKENS_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_DECL_TOKENS_( \
d, id, tpl, k_f_oldofautotypes, dispatch_param, a) \
- CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_(id, tpl, \
BOOST_PP_TUPLE_ELEM(3, 0, k_f_oldofautotypes), \
BOOST_PP_TUPLE_ELEM(3, 1, k_f_oldofautotypes), \
BOOST_PP_TUPLE_ELEM(3, 2, k_f_oldofautotypes), \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a), \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a), \
1 /* yes for assertion */, dispatch_param)
-#define CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_DATA_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_DATA_( \
id, tpl, k, f, oldof_auto_types, a) \
/* NOTE: Extra parens (assertion_func<...>(...)); wrap tparam commas */ \
- (CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a) \
+ (BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_(id, a) \
< /* always a tpl because of extra Unused tparam */ \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_NAME_ENUM_, ~, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_TPARAM_NAME_ENUM_, ~, \
oldof_auto_types) \
BOOST_PP_COMMA_IF(BOOST_PP_BITAND( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f))))) \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f))))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
BOOST_PP_COMMA_IF(BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS(oldof_auto_types), \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f))))) \
void /* unused tparam to disable assertion func compilation */ \
> \
( \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
/* NOTE: extra param for assertion func dispatch based on */ \
/* requirements-- mpl::true_ iff assertion requirements */ \
/* are met at compile-time */ \
::boost::mpl::bool_< \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
>::type() \
- , CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f):: \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f):: \
body_type() \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_NAME_, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_PARAM_NAME_, \
tpl, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_CONSTREF_, \
- ~, CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)) \
- , CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_CONSTREF_(id, tpl, k, f)\
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_COMMA_OLDOF_AUTO_PARAM_CONSTREF_, \
+ ~, BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS( \
+ f)) \
+ , BOOST_CONTRACT_AUX_CODE_POSTCONDITION_RESULT_PARAM_CONSTREF_( \
+ id, tpl, k, f)\
));
-#define CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_( \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_( \
d, id, tpl, k_f_oldofautotypes, a) \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_DATA_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_DATA_(id, tpl, \
BOOST_PP_TUPLE_ELEM(3, 0, k_f_oldofautotypes), \
BOOST_PP_TUPLE_ELEM(3, 1, k_f_oldofautotypes), \
BOOST_PP_TUPLE_ELEM(3, 2, k_f_oldofautotypes), \
a)
-#define CONTRACT_AUX_CODE_POSTCONDITION_(id, tpl, k, f, oldof_auto_types) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, postcondition, \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_DECL_TOKENS_, \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_( \
+ id, tpl, k, f, oldof_auto_types) \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, postcondition, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_DECL_TOKENS_, \
(k, f, oldof_auto_types), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITIONS(f)) \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITIONS(f)) \
+ BOOST_PP_LIST_ENUM(BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC_DECL_TOKENS_(\
id, tpl, k, f, oldof_auto_types, \
- CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f), \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f), \
0 /* not for assertion */, ~ /* no dispatch param */)) \
{ \
- CONTRACT_AUX_CODE_ASSERT(id, \
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, \
BOOST_PP_BITOR(tpl, BOOST_PP_LIST_IS_CONS(oldof_auto_types)), \
postcondition, \
- CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_, \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ASSERTION_FUNC_CALL_, \
(k, f, oldof_auto_types), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITIONS(f)) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITIONS(f)) \
/* ensure that postcondition of void func do not attempt to access */ \
/* result value (note, this does not automatically error because */ \
/* the special type void_result and not void is used to handle void */ \
/* func) this check needs to be done within the func for tpl so */ \
/* to access the instantiated result type in case it depends on a */ \
/* tparam but... (continue below) */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
} \
/* (continued from above) ...the check needs to be done outside the */ \
/* func def for non-tpl to avoid linker errors on some compilers (MSVC) */ \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
BOOST_PP_TUPLE_EAT(4) \
, \
- CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_ \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_VALIDATE_RESULT_DECL_ \
)(id, tpl, k, f)
// PUBLIC //
-#define CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(postcondition))
-#define CONTRACT_AUX_CODE_POSTCONDITION(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+#define BOOST_CONTRACT_AUX_CODE_POSTCONDITION(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
BOOST_PP_TUPLE_EAT(5) \
, \
- CONTRACT_AUX_CODE_POSTCONDITION_ \
- )(id, tpl, k, f, CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES( \
- CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)))
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION_ \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_CODE_OLDOF_AUTO_TYPES( \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_POSTCONDITION_OLDOFS(f)))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/precondition.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/precondition.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/precondition.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,89 +5,91 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_PRECONDITION_HPP_
-#define CONTRACT_AUX_CODE_PRECONDITION_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_PRECONDITION_HPP_
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/debug.hpp>
-#include <contract/aux_/subcontract/precondition.hpp>
-#include <contract/aux_/macro/code_/name.hpp>
-#include <contract/aux_/macro/code_/assert.hpp>
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/debug.hpp>
+#include <boost/contract/aux_/subboost/contract/precondition.hpp>
+#include <boost/contract/aux_/macro/code_/name.hpp>
+#include <boost/contract/aux_/macro/code_/assert.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_DECL_(r, tpl_f, p) \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_DECL_(r, tpl_f, p) \
, \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(BOOST_PP_TUPLE_ELEM(2, 0, tpl_f), \
BOOST_PP_TUPLE_ELEM(2, 1, tpl_f)) \
::contract::aux::arg_const< \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p)) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))\
>::type \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
-#define CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_(r, unused, p) \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_(r, unused, p) \
, \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_NAME(p)
// Precondition: !CONFIG_PRECONDITION_OVERRIDE_01 && member(f)
-#define CONTRACT_AUX_CODE_PRECONDITION_NO_OVERRIDE_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_NO_OVERRIDE_(id, tpl, k, f) \
/* if not ( !has_virtual(B::f) || pre(f) == NIL ) then error */\
- CONTRACT_AUX_MPL_ASSERT_MSG( \
- (!CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG( \
+ (!BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
(BOOST_PP_LIST_IS_NIL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f))) \
, BOOST_PP_SEQ_CAT( \
(ERROR_library_configuration_forbids_precondition_override_at_line_) \
(id) ) \
, ( /* can't print any type here because all bases checked */ ) \
); /* MPL assert requires trailing `;` */ \
/* if has_virtual(B::f) then assert false (so overridden pre must hold) */ \
- CONTRACT_AUX_CODE_ASSERT_CONDITION( \
- (!(CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
+ BOOST_CONTRACT_AUX_CODE_ASSERT_CONDITION( \
+ (!(BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
false), \
precondition, 0 /* no number (it will not be printed) */, \
/* print same asserted condition */ \
- (!(CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
+ (!(BOOST_CONTRACT_AUX_CODE_OVERRIDE_CONDITION(id, tpl, k, f)) || \
false))
-#define CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_(id, tpl, k, f, \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_(id, tpl, k, f, \
function_name, is_assertion, dispatch_param) \
BOOST_PP_TUPLE_TO_LIST( /* pp-list for tparams unwrapped commas */ \
BOOST_PP_MAX(1, BOOST_PP_ADD( /* always at least 1 elem in tuple */ \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
, is_assertion /* add 1 if true, 0 otherwise */ \
)) \
, ( \
BOOST_PP_EXPR_IIF(BOOST_PP_BITAND(is_assertion, \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)), \
/* if not assertion, can't decl private here for subcontracting */ \
private: \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(is_assertion, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)), \
template< \
) \
/* actual tparams last because of trailing default params */ \
- CONTRACT_AUX_CODE_TEMPLATE_DECL(0, /* no `template<` and `>` */ \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ 0, /* no `template<` and `>` */ \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
/* unused tparam to delay assertion-func compilation */ \
BOOST_PP_COMMA_IF(BOOST_PP_BITAND(is_assertion, \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
- f))))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS( \
+ f))))) \
BOOST_PP_EXPR_IIF(is_assertion, \
- typename CONTRACT_AUX_SYMBOL( (Unused)(id) ) \
+ typename BOOST_CONTRACT_AUX_SYMBOL( (Unused)(id) ) \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR(is_assertion, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f)), \
> \
) \
BOOST_PP_EXPR_IIF(BOOST_PP_COMPL( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f)), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f)), \
/* POLICY: also cons pre are static so they cannot access obj */ \
/* because there is no obj before successful const body exec */ \
static \
@@ -102,164 +104,174 @@
/* (because pre add const to args and obj so it might have same */ \
/* signature as of overloaded func with const arg and obj) */ \
/* not named so it cannot be used by mistake */ \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f)::body_type \
/* all params are const (and ref) for const-correctness */ \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_DECL_, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_DECL_, \
(tpl, f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f), \
const /* const obj for const-correctness (unless static) */ \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
) )
-#define CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a) \
- CONTRACT_AUX_SYMBOL( (precondition_assertion) \
- (CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a) \
+ BOOST_CONTRACT_AUX_SYMBOL( (precondition_assertion) \
+ (BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_NUMBER(a)) (id) )
-#define CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_DECL_TOKENS_( \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_DECL_TOKENS_( \
d, id, tpl, k_f, dispatch_param, a) \
- CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_(id, tpl, \
BOOST_PP_TUPLE_ELEM(2, 0, k_f), BOOST_PP_TUPLE_ELEM(2, 1, k_f), \
- CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a), \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a), \
1 /* yes for assertion */, dispatch_param)
-#define CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_DATA_( \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_DATA_( \
k, f, id, tpl, a) \
/* NOTE: Extra parens (assertion_func<...>(...)); wrap tparam commas */ \
- (CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a) \
+ (BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_(id, a) \
< /* always a tpl because of extra Unused tparam */ \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
BOOST_PP_COMMA_IF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f)))) \
void /* unused tparam to disable assertion func compilation */ \
> \
( \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
/* NOTE: extra param for assertion func dispatch based on */ \
/* requirements-- mpl::true_ iff assertion requirements */ \
/* are met at compile-time */ \
::boost::mpl::bool_< \
- CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
+ BOOST_CONTRACT_DETAIL_PP_ASSERTION_TRAITS_REQUIREMENT(a) \
>::type() \
- , CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f):: \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f):: \
body_type() \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_, tpl, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_, tpl, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
));
-#define CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_( \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_( \
d, id, tpl, k_f, a) \
- CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_DATA_(id, tpl, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_DATA_(id, tpl, \
BOOST_PP_TUPLE_ELEM(2, 0, k_f), BOOST_PP_TUPLE_ELEM(2, 1, k_f), a)
-#define CONTRACT_AUX_CODE_PRECONDITION_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, precondition, \
- CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_DECL_TOKENS_, \
- (k, f), CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f)) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), private:) \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_( \
- id, tpl, k, f, CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f), \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_ASSERTION_FUNC_DEF(id, tpl, precondition, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_DECL_TOKENS_, \
+ (k, f), BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f)) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ private: \
+ ) \
+ BOOST_PP_LIST_ENUM(BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_( \
+ id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f), \
0 /* not for assertion */, ~ /* no dispatch param */)) \
{ \
/* POLICY: N1962 requires that preconditions cannot be overridden */ \
BOOST_PP_IIF(BOOST_PP_BITAND(BOOST_PP_COMPL( \
- CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f)), \
- CONTRACT_AUX_CODE_PRECONDITION_NO_OVERRIDE_ \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITION_OVERRIDE_01), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f)), \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_NO_OVERRIDE_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
- CONTRACT_AUX_CODE_ASSERT(id, tpl, precondition, \
- CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_, (k, f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f)) \
+ BOOST_CONTRACT_AUX_CODE_ASSERT(id, tpl, precondition, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_ASSERTION_FUNC_CALL_, \
+ (k, f), BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PRECONDITIONS(f)) \
}
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_COMMA_BASE_( \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_COMMA_BASE_( \
z, n, id_tpl_k_f) \
, dynamic_cast< \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f), n) \
const \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE( \
BOOST_PP_TUPLE_ELEM(4, 3, id_tpl_k_f)) \
* const \
>(this) \
/* call function to check all (base, base's base, etc) preconditions */ \
- , CONTRACT_AUX_CODE_FUNC_PTR( \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_PTR( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f), \
BOOST_PP_TUPLE_ELEM(4, 1, id_tpl_k_f), \
BOOST_PP_TUPLE_ELEM(4, 2, id_tpl_k_f), \
BOOST_PP_TUPLE_ELEM(4, 3, id_tpl_k_f), \
- BOOST_PP_EXPAND(CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_FUNC \
+ BOOST_PP_EXPAND( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_FUNC \
id_tpl_k_f), \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE( \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
BOOST_PP_TUPLE_ELEM(4, 0, id_tpl_k_f), n))
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_( \
+ id, tpl, k, f) \
/* this cannot be private */ \
- BOOST_PP_LIST_ENUM(CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_( \
+ BOOST_PP_LIST_ENUM(BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC_DECL_TOKENS_( \
id, tpl, k, f, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_FUNC(id, tpl, k, f), \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_FUNC( \
+ id, tpl, k, f), \
0 /* not for assertion */, void /* no ass. req. dispatch type */)) \
{ \
::contract::aux::subcontract_precondition< \
- CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
>( \
this \
/* call func to check this object (not all) precondition */ \
- , CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, \
- CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f), \
- CONTRACT_AUX_CODE_CLASS_TYPE) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_COMMA_BASE_, \
+ , BOOST_CONTRACT_AUX_CODE_FUNC_PTR(id, tpl, k, f, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f), \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_COMMA_BASE_, \
(id, tpl, k, f)) \
BOOST_PP_LIST_FOR_EACH( \
- CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_COMMA_PARAM_NAME_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
); \
}
// PUBLIC //
-#define CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION_FUNC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(precondition))
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_FUNC(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_FUNC( \
+ id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(subcontracted_precondition))
-#define CONTRACT_AUX_CODE_PRECONDITION(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+#define BOOST_CONTRACT_AUX_CODE_PRECONDITION(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
BOOST_PP_TUPLE_EAT(4) \
, \
- CONTRACT_AUX_CODE_PRECONDITION_ \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION_ \
)(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ k, f), \
/* must be public for subcontracting */ \
- public: CONTRACT_AUX_CODE_SUBCONTRACTED_PRECONDITION_ \
+ public: BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_PRECONDITION_ \
, \
/* ctor and dtor subcontract via base-class creation rules */ \
BOOST_PP_TUPLE_EAT(4) \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/result_type.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/result_type.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/result_type.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,12 +5,12 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_RESULT_TYPE_HPP_
-#define CONTRACT_AUX_CODE_RESULT_TYPE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_HPP_
-#include <contract/detail/preprocessor/traits/func/result_type.hpp>
-#include <contract/detail/preprocessor/traits/func/name.hpp>
-#include <contract/detail/preprocessor/keyword/operator.hpp>
+#include <boost/contract/detail/preprocessor/traits/func/result_type.hpp>
+#include <boost/contract/detail/preprocessor/traits/func/name.hpp>
+#include <boost/contract/detail/preprocessor/keyword/operator.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
@@ -21,9 +21,9 @@
// PRIVATE //
-#define CONTRACT_AUX_CODE_RESULT_TYPE_HANDLE_EMPTY_(f) \
+#define BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_HANDLE_EMPTY_(f) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f)),\
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f)),\
/* implicit type conversion operators `operator int* ( void )` have */ \
/* empty result type and their result type is made to match the */ \
/* operator symbolic type `int*` */ \
@@ -32,21 +32,21 @@
/* constructors and destructors have empty result type and their */ \
/* result type is made to be void */ \
void BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f))
+ )(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f))
-#define CONTRACT_AUX_CODE_RESULT_TYPE_NOT_EMPTY_(f) \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_TRAITS_RESULT_TYPE(f))
+#define BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_NOT_EMPTY_(f) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_RESULT_TYPE(f))
// PUBLIC //
-#define CONTRACT_AUX_CODE_RESULT_TYPE(f, allow_empty) \
+#define BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, allow_empty) \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_RESULT_TYPE(f)), \
- CONTRACT_AUX_CODE_RESULT_TYPE_NOT_EMPTY_ \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_RESULT_TYPE(f)), \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_NOT_EMPTY_ \
, BOOST_PP_IIF(allow_empty, \
BOOST_PP_TUPLE_EAT(1) /* expand to empty */ \
, \
- CONTRACT_AUX_CODE_RESULT_TYPE_HANDLE_EMPTY_ \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE_HANDLE_EMPTY_ \
))(f)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/signature.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/signature.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/signature.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,98 +5,101 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_SIGNATURE_HPP_
-#define CONTRACT_AUX_CODE_SIGNATURE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_SIGNATURE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE_HPP_
-#include <contract/aux_/symbol.hpp>
-#include <contract/aux_/signature_traits.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
-#include <contract/detail/preprocessor/traits/func_param.hpp> // p
+#include <boost/contract/aux_/symbol.hpp>
+#include <boost/contract/aux_/signature_traits.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/detail/preprocessor/traits/func_param.hpp> // p
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/list/for_each_i.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_SIGNATURE_PARAM_TYPE_ENUM_(r, unused, i, p) \
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE_PARAM_TYPE_ENUM_(r, unused, i, p) \
BOOST_PP_COMMA_IF(i) \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
-#define CONTRACT_AUX_CODE_SIGNATURE_COMMA_SUBCONTRACTED_BASE_TYPE_(z, n, id) \
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE_COMMA_SUBBOOST_CONTRACTED_BASE_TYPE_(\
+ z, n, id) \
, \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n)
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n)
-#define CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) \
/* this symbol is unique because of id (it cannot be made unique */ \
/* without id, for example just using the func and param names, */ \
/* because overloaded func will have same func name, param name, etc) */ \
/* NOTE: f's name is still needed because free func in same namespace */ \
/* and decl on same line will have same id in same namespace */ \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(signature_traits)(id))
// PUBLIC //
// In type-dependent context, this must be prefixed by typename.
-#define CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
- CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE_TYPE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE( \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
::type
-#define CONTRACT_AUX_CODE_SIGNATURE(id, tpl, k, f) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), private:) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
- struct CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) { \
+#define BOOST_CONTRACT_AUX_CODE_SIGNATURE(id, tpl, k, f) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ private: \
+ ) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ struct BOOST_CONTRACT_AUX_CODE_SIGNATURE_CLASS_(id, tpl, k, f) { \
typedef \
BOOST_PP_IIF( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION( \
k, f), \
::contract::aux::derived_signature_traits \
, \
::contract::aux::signature_traits \
) \
< \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* no empty result */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* no empty result */)\
/* function (eventually member function) pointer type */ \
( \
BOOST_PP_EXPR_IIF(BOOST_PP_BITOR( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
k, f) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k) \
- , CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k) \
+ , BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k) \
)), \
- CONTRACT_AUX_CODE_CLASS_TYPE:: \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE:: \
) \
* \
) \
/* function argument types */ \
( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_SIGNATURE_PARAM_TYPE_ENUM_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_PARAM_TYPE_ENUM_,\
+ ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
/* cv-qualifiers */ \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f) \
/* base class types (only for subcontracting) */ \
BOOST_PP_IIF( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
- k, f), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f), \
BOOST_PP_REPEAT \
, \
BOOST_PP_TUPLE_EAT(3) \
- )(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_SIGNATURE_COMMA_SUBCONTRACTED_BASE_TYPE_,\
+ )(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE_COMMA_SUBBOOST_CONTRACTED_BASE_TYPE_,\
id) \
> \
type \
Modified: sandbox/contract/boost/contract/aux_/macro/code_/subcontract.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/subcontract.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/subcontract.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,15 +5,16 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_SUBCONTRACT_HPP_
-#define CONTRACT_AUX_CODE_SUBCONTRACT_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_HPP_
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_HPP_
-#include <contract/aux_/subcontract/from.hpp>
-#include <contract/aux_/subcontract/has_class_invariant.hpp>
+#include <boost/contract/aux_/subboost/contract/from.hpp>
+#include <boost/contract/aux_/subboost/contract/has_class_invariant.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_SUBCONTRACT_FUNC_BASE_TYPEDEF_(z, n, id_tpl_f) \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_FUNC_BASE_TYPEDEF_( \
+ z, n, id_tpl_f) \
typedef \
/* here typename only if enclosing scope is template (tpl = 1) but */ \
/* not also if f is template (because if f is template no */ \
@@ -22,54 +23,56 @@
typename \
) \
::contract::aux::subcontract_from< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- , CONTRACT_AUX_CODE_BASE_TYPE(n) \
- , BOOST_PP_IIF(CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE( \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ , BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ , BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE( \
BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_f)), \
/* NOTE: member func tpl cannot be virtual so no subcontract */\
::boost::mpl::false_ \
BOOST_PP_TUPLE_EAT(3) \
, \
- CONTRACT_AUX_CODE_HAS_VIRTUAL \
+ BOOST_CONTRACT_AUX_CODE_HAS_VIRTUAL \
)(BOOST_PP_TUPLE_ELEM(3, 0, id_tpl_f), \
BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_f), \
- CONTRACT_AUX_CODE_BASE_TYPE(n)) \
+ BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n)) \
>::type \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(BOOST_PP_TUPLE_ELEM( \
- 3, 0, id_tpl_f), n) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
+ BOOST_PP_TUPLE_ELEM(3, 0, id_tpl_f), n) \
;
-#define CONTRACT_AUX_CODE_SUBCONTRACT_INVARIANT_BASE_TYPEDEF_(z, n, id_tpl_c) \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_INVARIANT_BASE_TYPEDEF_( \
+ z, n, id_tpl_c) \
typedef \
- CONTRACT_AUX_CODE_CLASS_TYPENAME(BOOST_PP_TUPLE_ELEM(3, 1, id_tpl_c), \
- BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_c)) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(BOOST_PP_TUPLE_ELEM( \
+ 3, 1, id_tpl_c), BOOST_PP_TUPLE_ELEM(3, 2, id_tpl_c)) \
::contract::aux::subcontract_from< \
- CONTRACT_AUX_CODE_CLASS_TYPE \
- , CONTRACT_AUX_CODE_BASE_TYPE(n) \
+ BOOST_CONTRACT_AUX_CODE_CLASS_TYPE \
+ , BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n) \
, ::contract::aux::has_subcontracted_class_invariant< \
- void (CONTRACT_AUX_CODE_BASE_TYPE(n)::*) ( ) const \
+ void (BOOST_CONTRACT_AUX_CODE_BASE_TYPE(n)::*) ( ) const \
> \
>::type \
- CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(BOOST_PP_TUPLE_ELEM(3, 0, \
- id_tpl_c), n) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE( \
+ BOOST_PP_TUPLE_ELEM(3, 0, id_tpl_c), n) \
;
// PUBLIC //
-#define CONTRACT_AUX_CODE_SUBCONTRACTED_BASE_TYPE(id, n) \
- CONTRACT_AUX_SYMBOL( (subcontracted_base)(n)(id) )
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACTED_BASE_TYPE(id, n) \
+ BOOST_CONTRACT_AUX_SYMBOL( (subcontracted_base)(n)(id) )
// Subcontract overriding function pre and post from all bases.
-#define CONTRACT_AUX_CODE_SUBCONTRACT_PREPOSTCONDITION_FROM_BASES( \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_PREPOSTCONDITION_FROM_BASES( \
id, tpl, k, f) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_SUBCONTRACT_FUNC_BASE_TYPEDEF_, \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_FUNC_BASE_TYPEDEF_, \
(id, tpl, f))
// Subcontract (dynamic, volatile, and static) class inv from all bases.
-#define CONTRACT_AUX_CODE_SUBCONTRACT_CLASS_INVARIANT_FROM_BASES(id, tpl, c) \
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, \
- CONTRACT_AUX_CODE_SUBCONTRACT_INVARIANT_BASE_TYPEDEF_, \
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_CLASS_INVARIANT_FROM_BASES( \
+ id, tpl, c) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX, \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_INVARIANT_BASE_TYPEDEF_, \
(id, tpl, c))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/template.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/template.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/template.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,14 +5,14 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_TEMPLATE_HPP_
-#define CONTRACT_AUX_CODE_TEMPLATE_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_TEMPLATE_HPP_
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_HPP_
-#include <contract/detail/preprocessor/traits/class.hpp> // c
-#include <contract/detail/preprocessor/traits/func.hpp> // f
-#include <contract/detail/preprocessor/traits/template_param.hpp> // t
-#include <contract/detail/preprocessor/list/to_array.hpp>
-#include <contract/detail/preprocessor/keyword/template.hpp>
+#include <boost/contract/detail/preprocessor/traits/class.hpp> // c
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/detail/preprocessor/traits/template_param.hpp> // t
+#include <boost/contract/detail/preprocessor/list/to_array.hpp>
+#include <boost/contract/detail/preprocessor/keyword/template.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/control/iif.hpp>
@@ -27,115 +27,120 @@
// Template parameters.
-#define CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_(tparams_list) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_(tparams_list) \
tparams_list ,
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ENUM_( \
tparams_list) \
- CONTRACT_DETAIL_PP_ARRAY_REM( \
- CONTRACT_DETAIL_PP_LIST_TO_ARRAY(tparams_list))
+ BOOST_CONTRACT_DETAIL_PP_ARRAY_REM( \
+ BOOST_CONTRACT_DETAIL_PP_LIST_TO_ARRAY(tparams_list))
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_TOKENS_(tparams_class) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_TOKENS_( \
+ tparams_class) \
template< \
/* cannot use LIST_ENUM here because of reentrancy */ \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM( \
2, 0, tparams_class)), \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ENUM_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ENUM_ \
, \
BOOST_PP_TUPLE_EAT(1) \
)(BOOST_PP_TUPLE_ELEM(2, 0, tparams_class)) \
> BOOST_PP_TUPLE_ELEM(2, 1, tparams_class)
// Precondition: tparams_class is `( tparams_list ) class`
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_(tparams_class) \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_TOKENS_( ( \
- CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_ tparams_class ) )
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_(tparams_class) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_TOKENS_( ( \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_ \
+ tparams_class \
+ ) )
// Precondition: !EMPTY(KIND(t))
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_KIND_(t) \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_TEMPLATE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_KIND_(t) \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_TEMPLATE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
/* template<...> class for template tparam */ \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_TEMPLATE_KIND_ \
, \
BOOST_PP_TUPLE_REM(1) /* typename or class for type tparam */ \
- )(CONTRACT_DETAIL_PP_KEYWORD_TEMPLATE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)))
+ )(BOOST_CONTRACT_DETAIL_PP_KEYWORD_TEMPLATE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)))
// Precondition: t is a positional tparam.
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_ENUM_(r, unused, i, t) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_ENUM_(r, unused, i, t) \
BOOST_PP_COMMA_IF(i) \
/* typename, class, or template<...> class (non-value tparams) */ \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
BOOST_PP_TUPLE_EAT(1) \
, \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_KIND_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_KIND_ \
)(t) \
/* otherwise, type requirement (value tparams) */ \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)), \
BOOST_PP_ARRAY_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)) \
+ )(BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_REQUIREMENT(t)) \
/* name */ \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t) \
/* default */ \
BOOST_PP_IF(BOOST_PP_ARRAY_SIZE( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t)), \
= BOOST_PP_ARRAY_ENUM \
, \
BOOST_PP_TUPLE_EAT(1) \
- )(CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t))
+ )(BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_DEFAULT(t))
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM_(r, unused, i, t) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM_(r, unused, i, t) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t)
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_NAME(t)
// Count (because template template params can introduced unwrapped commas).
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_(count, unused) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_(count, unused) \
BOOST_PP_INC(count)
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_SIZE_( \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_SIZE_( \
count, tparams_list) \
BOOST_PP_ADD(count, BOOST_PP_LIST_SIZE(tparams_list))
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_( \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_( \
count, tparams_class) \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(2, 0, \
tparams_class)), \
/* as many tokens as tparams 1 for `template<typename X> class`, */ \
/* 2 for `tempalte<typename X, typename Y> class`, etc */ \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_SIZE_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_SIZE_ \
, \
/* no tparams `tempalte<> class` but still 1 token */ \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ \
)(count, BOOST_PP_TUPLE_ELEM(2, 0, tparams_class))
// Precondition: tparams_class is `( tparams_list ) class`
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_(count, tparams_class) \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_(count, ( \
- CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_ tparams_class ) )
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_(count, tparams_class) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_PARAMS_(count, ( \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_TEMPLATE_PARAM_SPLIT_ \
+ tparams_class \
+ ) )
// Precondition: !EMPTY(KIND(t))
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_KIND_(count, t) \
- BOOST_PP_IIF(CONTRACT_DETAIL_PP_KEYWORD_IS_TEMPLATE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_KIND_(count, t) \
+ BOOST_PP_IIF(BOOST_CONTRACT_DETAIL_PP_KEYWORD_IS_TEMPLATE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
/* template<...> class for template tparam */ \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_TEMPLATE_ \
, \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ /* it is type tparam */ \
- )(count, CONTRACT_DETAIL_PP_KEYWORD_TEMPLATE_REMOVE_FRONT( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)))
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ /* it is type tparam */ \
+ )(count, BOOST_CONTRACT_DETAIL_PP_KEYWORD_TEMPLATE_REMOVE_FRONT( \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)))
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT_(d, count, t) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_(d, count, t) \
BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ /* it is value tparam */ \
+ BOOST_CONTRACT_DETAIL_PP_TEMPLATE_PARAM_TRAITS_KIND(t)), \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_INC_ /* it is value tparam */ \
, \
- CONTRACT_AUX_CODE_TEMPLATE_COUNT_KIND_ \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_KIND_ \
)(count, t)
// PUBLIC //
@@ -143,26 +148,26 @@
// Precondition: All of these only work on positional tparams.
// For template specializations, template01 is 1 and tparams is nil pp-list,
-#define CONTRACT_AUX_CODE_TEMPLATE_DECL(template01, tparams) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL(template01, tparams) \
BOOST_PP_EXPR_IIF(template01, template< ) /* for specializations */ \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_TEMPLATE_PARAM_ENUM_, ~, \
+ BOOST_PP_LIST_FOR_EACH_I(BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_ENUM_, ~, \
tparams) \
BOOST_PP_EXPR_IIF(template01, > )
-#define CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM(tparams) \
- BOOST_PP_LIST_FOR_EACH_I(CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM_, \
- ~, tparams)
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM(tparams) \
+ BOOST_PP_LIST_FOR_EACH_I( \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM_, ~, tparams)
-#define CONTRACT_AUX_CODE_TEMPLATE_INSTANCE(tparams) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_INSTANCE(tparams) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(tparams), < ) \
- CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM(tparams) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_PARAM_NAME_ENUM(tparams) \
BOOST_PP_EXPR_IIF(BOOST_PP_LIST_IS_CONS(tparams), > )
// Count number of template tokens: 1 for template<> and template<typename X>,
// 2 for template<typename X, typename Y>, etc.
-#define CONTRACT_AUX_CODE_TEMPLATE_COUNT(tparams) \
+#define BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT(tparams) \
/* cannot just use LIST_SIZE because of template template param */ \
- BOOST_PP_LIST_FOLD_LEFT(CONTRACT_AUX_CODE_TEMPLATE_COUNT_, 0, tparams)
+ BOOST_PP_LIST_FOLD_LEFT(BOOST_CONTRACT_AUX_CODE_TEMPLATE_COUNT_, 0, tparams)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/typename.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/typename.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/typename.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,17 +5,17 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_TYPENAME_HPP_
-#define CONTRACT_AUX_CODE_TYPENAME_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_TYPENAME_HPP_
+#define BOOST_CONTRACT_AUX_CODE_TYPENAME_HPP_
-#include <contract/detail/preprocessor/traits/class.hpp> // c
-#include <contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/detail/preprocessor/traits/class.hpp> // c
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
#include <boost/preprocessor/control/expr_iif.hpp>
#include <boost/preprocessor/logical/bitor.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_TYPENAME01_(tpl, params) \
+#define BOOST_CONTRACT_AUX_CODE_TYPENAME01_(tpl, params) \
/* the typename keyword should be used to resolve nested type */ \
/* expressions if the enclosing scope is a template (tpl is 1) or */ \
/* the declared class or function has non-empty template parameters */ \
@@ -26,31 +26,33 @@
tpl \
, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL(params)) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL(params)) \
, BOOST_PP_BITOR( \
BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(params)) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(params)) \
, BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(params)) \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED(params)) \
) \
) \
- ) \
+ )
// PUBLIC //
-#define CONTRACT_AUX_CODE_CLASS_TYPENAME01(tpl, c) \
- CONTRACT_AUX_CODE_TYPENAME01_(tpl, \
- CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))
-
-#define CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CODE_CLASS_TYPENAME01(tpl, c), typename)
-
-#define CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f) \
- CONTRACT_AUX_CODE_TYPENAME01_(tpl, \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))
-
-#define CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), typename)
+#define BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME01(tpl, c) \
+ BOOST_CONTRACT_AUX_CODE_TYPENAME01_(tpl, \
+ BOOST_CONTRACT_DETAIL_PP_CLASS_TRAITS_TEMPLATE_PARAMS(c))
+
+#define BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME(tpl, c) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CODE_CLASS_TYPENAME01(tpl, c), \
+ typename)
+
+#define BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f) \
+ BOOST_CONTRACT_AUX_CODE_TYPENAME01_(tpl, \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))
+
+#define BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME(tpl, f) \
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_CODE_FUNC_TYPENAME01(tpl, f), \
+ typename)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/code_/virtual.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/code_/virtual.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/code_/virtual.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,74 +5,76 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_CODE_VIRTUAL_HPP_
-#define CONTRACT_AUX_CODE_VIRTAUL_HPP_
+#ifndef BOOST_CONTRACT_AUX_CODE_VIRTUAL_HPP_
+#define BOOST_CONTRACT_AUX_CODE_VIRTAUL_HPP_
-#include <contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/or.hpp>
// PRIVATE //
-#define CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f) \
- CONTRACT_AUX_SYMBOL( (CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f) \
+ BOOST_CONTRACT_AUX_SYMBOL( (BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f)) \
(virtual_function_tag) )
-#define CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_PARAM_TYPE_ENUM_( \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_PARAM_TYPE_ENUM_( \
r, default01, i, p) \
BOOST_PP_COMMA_IF(i) \
- CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
- BOOST_PP_ARRAY_ENUM(CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
+ BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_CLASSIFIER(p) \
+ BOOST_PP_ARRAY_ENUM(BOOST_CONTRACT_DETAIL_PP_FUNC_PARAM_TRAITS_TYPE(p))
-#define CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, name) \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, name) \
/* NOTE: virtual functions decl this member func tag which existence */ \
/* can be checked using the introspection metafunction also def here */ \
- CONTRACT_AUX_CODE_RESULT_TYPE(f, 0 /* don't allow empty result type */) \
+ BOOST_CONTRACT_AUX_CODE_RESULT_TYPE(f, \
+ 0 /* don't allow empty result type */) \
name \
( \
BOOST_PP_LIST_FOR_EACH_I( \
- CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_PARAM_TYPE_ENUM_, ~, \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_PARAM_TYPE_ENUM_, ~, \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f))) \
) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CONST(f) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VOLATILE(f)
-#define CONTRACT_AUX_CODE_VIRTUAL_TAG_DECL_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_TEMPLATE_DECL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
- CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, \
- CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f)) \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_DECL_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_TEMPLATE_DECL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_IS_TEMPLATE(f), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_POSITIONAL( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_TEMPLATE_PARAMS(f))) \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f)) \
; /* no tag func definition needed for SFINAE so `;` */
-#define CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id) \
- CONTRACT_AUX_SYMBOL( (has_virtual_function_tag)(id) )
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id) \
+ BOOST_CONTRACT_AUX_SYMBOL( (has_virtual_function_tag)(id) )
-#define CONTRACT_AUX_CODE_VIRTUAL_CHECK_DEF_(id, tpl, k, f) \
- CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION( \
- CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id), \
- CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f)) \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_CHECK_DEF_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION( \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id), \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_FUNC_(f)) \
// PUBLIC //
// Return MPL type true_ or false_.
-#define CONTRACT_AUX_CODE_HAS_VIRTUAL(id, f, class_type) \
- CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id)< \
- CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, (class_type::*)) \
+#define BOOST_CONTRACT_AUX_CODE_HAS_VIRTUAL(id, f, class_type) \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_CHECK_METAFUNC_(id)< \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_FUNC_SIGNATURE_(f, (class_type::*)) \
>
-#define CONTRACT_AUX_CODE_VIRTUAL_TAG(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_VIRTUAL(f)), \
+#define BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG(id, tpl, k, f) \
+ BOOST_PP_IIF(BOOST_PP_IS_EMPTY( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_VIRTUAL(f)), \
BOOST_PP_TUPLE_EAT(4) \
, \
public: /* must be public to be accessed from intro metafunc */ \
- CONTRACT_AUX_CODE_VIRTUAL_TAG_DECL_ \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG_DECL_ \
)(id, tpl, k, f) \
private: /* check introspection metafunc can be private */ \
- CONTRACT_AUX_CODE_VIRTUAL_CHECK_DEF_(id, tpl, k, f)
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_CHECK_DEF_(id, tpl, k, f)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/function.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/function.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/function.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,93 +5,101 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_FUNCTION_HPP_
-#define CONTRACT_AUX_FUNCTION_HPP_
+#ifndef BOOST_CONTRACT_AUX_FUNCTION_HPP_
+#define BOOST_CONTRACT_AUX_FUNCTION_HPP_
-#include <contract/aux_/macro/code_/named_params_func.hpp>
-#include <contract/aux_/macro/code_/signature.hpp>
-#include <contract/aux_/macro/code_/precondition.hpp>
-#include <contract/aux_/macro/code_/postcondition.hpp>
-#include <contract/aux_/macro/code_/oldof.hpp>
-#include <contract/aux_/macro/code_/func.hpp>
-#include <contract/aux_/macro/code_/body.hpp>
-#include <contract/aux_/macro/code_/final.hpp>
-#include <contract/aux_/macro/code_/virtual.hpp>
-#include <contract/aux_/macro/code_/subcontract.hpp>
-#include <contract/aux_/macro/code_/exception_spec.hpp>
+#include <boost/contract/aux_/macro/code_/named_params_func.hpp>
+#include <boost/contract/aux_/macro/code_/signature.hpp>
+#include <boost/contract/aux_/macro/code_/precondition.hpp>
+#include <boost/contract/aux_/macro/code_/postcondition.hpp>
+#include <boost/contract/aux_/macro/code_/oldof.hpp>
+#include <boost/contract/aux_/macro/code_/func.hpp>
+#include <boost/contract/aux_/macro/code_/body.hpp>
+#include <boost/contract/aux_/macro/code_/final.hpp>
+#include <boost/contract/aux_/macro/code_/virtual.hpp>
+#include <boost/contract/aux_/macro/code_/subcontract.hpp>
+#include <boost/contract/aux_/macro/code_/exception_spec.hpp>
#include <boost/preprocessor/control/iif.hpp>
#include <boost/preprocessor/logical/bitor.hpp>
#include <boost/preprocessor/tuple/eat.hpp>
// PRIVATE //
-#define CONTRACT_AUX_FUNCTION_POSTCONDITION_AND_OLDOF_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_POSTCONDITION(id, tpl, k, f) \
- CONTRACT_AUX_CODE_OLDOF(id, tpl, k, f)
+#define BOOST_CONTRACT_AUX_FUNCTION_POSTCONDITION_AND_OLDOF_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_POSTCONDITION(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OLDOF(id, tpl, k, f)
-#define CONTRACT_AUX_FUNCTION_BODY_FORWARD_DECL_( \
+#define BOOST_CONTRACT_AUX_FUNCTION_BODY_FORWARD_DECL_( \
id, tpl, k, f, body_func) \
- CONTRACT_AUX_CODE_BODY_DECL(id, tpl, k, f, body_func) \
+ BOOST_CONTRACT_AUX_CODE_BODY_DECL(id, tpl, k, f, body_func) \
; /* forward declaration (no definition here, will be def by user later) */
-#define CONTRACT_AUX_FUNCTION_OVERRIDE_AND_NEW_AND_FINAL_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_FINAL(id, tpl, k, f) \
- CONTRACT_AUX_CODE_OVERRIDE(id, tpl, k, f) \
- CONTRACT_AUX_CODE_NEW(id, tpl, k, f)
-
-#define CONTRACT_AUX_FUNCTION_VIRTUAL_SPECIFIERS_(id, tpl, k, f) \
- BOOST_PP_IIF(BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_VIRTUAL_SPECIFIERS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- BOOST_PP_BITOR(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01))), \
- CONTRACT_AUX_CODE_VIRTUAL \
+#define BOOST_CONTRACT_AUX_FUNCTION_OVERRIDE_AND_NEW_AND_FINAL_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FINAL(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_OVERRIDE(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_NEW(id, tpl, k, f)
+
+#define BOOST_CONTRACT_AUX_FUNCTION_VIRTUAL_SPECIFIERS_(id, tpl, k, f) \
+ BOOST_PP_IIF( \
+ BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_VIRTUAL_SPECIFIERS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_PP_BITOR( \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ ) \
+ ) \
+ ), \
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_VIRTUAL_SPECIFIERS_01, \
- CONTRACT_AUX_FUNCTION_OVERRIDE_AND_NEW_AND_FINAL_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_VIRTUAL_SPECIFIERS_01, \
+ BOOST_CONTRACT_AUX_FUNCTION_OVERRIDE_AND_NEW_AND_FINAL_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f)
-#define CONTRACT_AUX_CODE_FUNCTION_VIRTUAL_FINAL_AND_SUBCONTRACT_( \
+#define BOOST_CONTRACT_AUX_CODE_FUNCTION_VIRTUAL_FINAL_AND_SUBBOOST_CONTRACT_( \
id, tpl, k, f) \
- CONTRACT_AUX_CODE_VIRTUAL_TAG(id, tpl, k, f) \
- CONTRACT_AUX_CODE_FINAL_TAG(id, tpl, k, f) \
- CONTRACT_AUX_CODE_SUBCONTRACT_PREPOSTCONDITION_FROM_BASES(id, tpl, k, f)
-
-#define CONTRACT_AUX_FUNCTION_FORWARD_DECL_(id, tpl, k, f) \
- CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f \
- , 0 /* fwd decl never friend (only contracted func def) */\
+ BOOST_CONTRACT_AUX_CODE_VIRTUAL_TAG(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FINAL_TAG(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_PREPOSTCONDITION_FROM_BASES( \
+ id, tpl, k, f)
+
+#define BOOST_CONTRACT_AUX_FUNCTION_FORWARD_DECL_(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f \
+ , 0 /* fwd decl never friend (only contracted func def) */ \
, 1 /* with defaults */ \
) ; /* fwd decl `;` */
// Expand to 1 if the specific function kind has contracts enabled, 0 otherwise.
-#define CONTRACT_AUX_FUNCTION_HAS_CONTRACT_(k, f) \
+#define BOOST_CONTRACT_AUX_FUNCTION_HAS_BOOST_CONTRACT_(k, f) \
/* order of this matters, start with free func */ \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f), \
BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
) \
/* not free func then dtor, ctor, or (static or not) member func */ \
- , BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ , BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
/* not free func or dtor then ctor or (static or not) member func */ \
, \
BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
) \
) \
))
-#define CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f) \
+#define BOOST_CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f) \
BOOST_PP_BITOR( \
/* contracts are enabled for this function */ \
- CONTRACT_AUX_FUNCTION_HAS_CONTRACT_(k, f) \
+ BOOST_CONTRACT_AUX_FUNCTION_HAS_BOOST_CONTRACT_(k, f) \
/* or, contracts off but (constructor) member initializers have */ \
/* constructor-try blocks for its inits */ \
/* POLICY: Function-try block only apply to exception */ \
@@ -106,23 +114,25 @@
/* and its initializers (so this library internally */ \
/* disables constructor-try-block handlers when not */ \
/* executing constructor initializers or body) */ \
- , BOOST_PP_LIST_IS_CONS(CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)) \
+ , BOOST_PP_LIST_IS_CONS( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_CATCHES(f)) \
)
// PUBLIC //
-#define CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_CONTRACT( \
+#define BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BOOST_CONTRACT( \
id, tpl, k, f, body_func) \
/* NOTE: Some of these tpl is OR with IS_TEMPLATE so _TPL does */ \
/* not have to (but it still can) be used with function templates */ \
BOOST_PP_IIF( \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(\
+ k, f) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_CLASS_INVARIANTS_01 \
) \
) \
), \
@@ -131,41 +141,41 @@
/* need to use the separation between body and contracted function */ \
/* in order to program their static assertion check (necessary to */ \
/* access actual template param type for function templates) */ \
- CONTRACT_AUX_CODE_FUNCTION_VIRTUAL_FINAL_AND_SUBCONTRACT_ \
+ BOOST_CONTRACT_AUX_CODE_FUNCTION_VIRTUAL_FINAL_AND_SUBBOOST_CONTRACT_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f), \
BOOST_PP_TUPLE_EAT(4) \
, \
/* NOTE: non-members are fwd decl up here so pre and post can call */ \
/* func itself (e.g., to recursively check factorial result) */ \
- CONTRACT_AUX_FUNCTION_FORWARD_DECL_ \
+ BOOST_CONTRACT_AUX_FUNCTION_FORWARD_DECL_ \
)(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_FUNCTION_HAS_CONTRACT_(k, f), \
- CONTRACT_AUX_CODE_SIGNATURE \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_FUNCTION_HAS_BOOST_CONTRACT_(k, f), \
+ BOOST_CONTRACT_AUX_CODE_SIGNATURE \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
- CONTRACT_AUX_CODE_PRECONDITION \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01, \
+ BOOST_CONTRACT_AUX_CODE_PRECONDITION \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl /* don't force tpl for templates */, k, f) \
- BOOST_PP_IIF(CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
- CONTRACT_AUX_FUNCTION_POSTCONDITION_AND_OLDOF_ \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01, \
+ BOOST_CONTRACT_AUX_FUNCTION_POSTCONDITION_AND_OLDOF_ \
, \
BOOST_PP_TUPLE_EAT(4) \
)(id, tpl /* don't force tpl for templates */, k, f)
-#define CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_CONTRACTED_FUNC( \
+#define BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BOOST_CONTRACTED_FUNC( \
id, tpl, k, f, body_func) \
BOOST_PP_IIF( \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
, BOOST_PP_BITOR( \
- CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
- , CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
+ BOOST_CONTRACT_AUX_CONFIG_PRECONDITIONS_01 \
+ , BOOST_CONTRACT_AUX_CONFIG_POSTCONDITIONS_01 \
) \
), \
/* NOTE: Free func body needs to be forward declared so body func */ \
@@ -173,75 +183,77 @@
/* body func will be defined later by the user (this is not the */ \
/* case for member func because within a class symbols are visible */ \
/* regardless of their declaration order) */ \
- CONTRACT_AUX_FUNCTION_BODY_FORWARD_DECL_ \
+ BOOST_CONTRACT_AUX_FUNCTION_BODY_FORWARD_DECL_ \
, \
BOOST_PP_TUPLE_EAT(5) \
)(id, tpl, k, f, body_func) \
/* actual func always decl (not matter if contracts or not) */ \
- CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f \
+ BOOST_CONTRACT_AUX_CODE_FUNC_DECL(id, tpl, k, f \
/* contracted function of a friend decl is the only part that */ \
/* retains friendship (rest of contract is as for static member) */ \
, BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))) \
/* default params for members while for non-members defaults */ \
/* already specified by fwd decl above */ \
- , CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ , BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
) \
- BOOST_PP_IIF(CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f), \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f), \
/* def calls body */ \
- CONTRACT_AUX_CODE_FUNC_DEF \
+ BOOST_CONTRACT_AUX_CODE_FUNC_DEF \
, BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_INITIALIZERS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_INITIALIZERS(f)), \
/* def init members (ctor only) and possibly calls body */ \
- CONTRACT_AUX_CODE_FUNC_DEF \
+ BOOST_CONTRACT_AUX_CODE_FUNC_DEF \
, \
BOOST_PP_TUPLE_EAT(5) \
))(id, tpl /* don't force tpl for template */, k, f, body_func)
-#define CONTRACT_AUX_FUNCTION_BODY_FUNC(k, f) \
- CONTRACT_AUX_CODE_NAME_POSTFIXED( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
- CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
+#define BOOST_CONTRACT_AUX_FUNCTION_BODY_FUNC(k, f) \
+ BOOST_CONTRACT_AUX_CODE_NAME_POSTFIXED( \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k), \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_OPERATOR(f), \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_NAME(f), \
(body))
// Named parameters need to force body even if all contracts off.
-#define CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE( \
+#define BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE( \
id, tpl, k, f, body_func, force_body) \
BOOST_PP_IIF(force_body, \
- CONTRACT_AUX_CODE_BODY_DECL \
+ BOOST_CONTRACT_AUX_CODE_BODY_DECL \
, \
BOOST_PP_TUPLE_EAT(5) \
)(id, tpl, k, f, body_func) \
/* POLICY: Exception spec only apply to exceptions thrown by the body */ \
/* and not to exceptions thrown by contract handlers (if they are */ \
/* redefined to throw) or by this library implementation code */ \
- CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f) \
+ BOOST_CONTRACT_AUX_CODE_EXCEPTION_SPEC(id, tpl, k, f) \
/* user's function definition { ... } (and try-blocks) follows here */
-#define CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL( \
+#define BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL( \
id, tpl, k, f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE( \
- id, tpl, k, f, body_func, CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f))
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL_FORCE(id, tpl, k, \
+ f, body_func, BOOST_CONTRACT_AUX_FUNCTION_NEEDS_BODY_(k, f))
-#define CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
+#define BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS( \
id, tpl, k, f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_CONTRACT(id, tpl, k, f, body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_CONTRACTED_FUNC(id, tpl, k, f, \
- body_func) \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL(id, tpl, k, f, body_func)
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BOOST_CONTRACT(id, tpl, k, \
+ f, body_func) \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BOOST_CONTRACTED_FUNC(id, \
+ tpl, k, f, body_func) \
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS_BODY_DECL(id, tpl, k, f, \
+ body_func)
-#define CONTRACT_AUX_FUNCTION(id, tpl, k, f) \
+#define BOOST_CONTRACT_AUX_FUNCTION(id, tpl, k, f) \
BOOST_PP_IIF(BOOST_PP_LIST_IS_CONS(BOOST_PP_LIST_APPEND( \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
- CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)))), \
- CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_NAMED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)), \
+ BOOST_CONTRACT_DETAIL_PP_PARAMS_TRAITS_DEDUCED( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_PARAMS(f)))), \
+ BOOST_CONTRACT_AUX_CODE_NAMED_PARAMS_FUNC \
, \
- CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS \
- )(id, tpl, k, f, CONTRACT_AUX_FUNCTION_BODY_FUNC(k, f))
+ BOOST_CONTRACT_AUX_FUNCTION_POSITIONAL_PARAMS \
+ )(id, tpl, k, f, BOOST_CONTRACT_AUX_FUNCTION_BODY_FUNC(k, f))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/macro/loop_variant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/loop_variant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/loop_variant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,25 +5,25 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_MACRO_LOOP_VARIANT_HPP_
-#define CONTRACT_AUX_MACRO_LOOP_VARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_MACRO_LOOP_VARIANT_HPP_
+#define BOOST_CONTRACT_AUX_MACRO_LOOP_VARIANT_HPP_
-#include <contract/aux_/macro/code_/loop_variant.hpp>
+#include <boost/contract/aux_/macro/code_/loop_variant.hpp>
// PRIVATE //
-#define CONTRACT_AUX_LOOP_VARIANT_(id, tpl, expr) \
- CONTRACT_AUX_CODE_LOOP_VARIANT(id, tpl, BOOST_PP_SEQ_HEAD(expr))
+#define BOOST_CONTRACT_AUX_LOOP_VARIANT_(id, tpl, expr) \
+ BOOST_CONTRACT_AUX_CODE_LOOP_VARIANT(id, tpl, BOOST_PP_SEQ_HEAD(expr))
// PUBLIC //
-#define CONTRACT_AUX_LOOP_VARIANT(id, tpl, expr) \
- BOOST_PP_IIF(BOOST_PP_COMPL(CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01), \
+#define BOOST_CONTRACT_AUX_LOOP_VARIANT(id, tpl, expr) \
+ BOOST_PP_IIF(BOOST_PP_COMPL(BOOST_CONTRACT_AUX_CONFIG_LOOP_VARIANTS_01), \
BOOST_PP_TUPLE_EAT(3) \
, BOOST_PP_IIF(BOOST_PP_EQUAL(BOOST_PP_SEQ_SIZE(expr), 1), \
- CONTRACT_AUX_LOOP_VARIANT_ \
+ BOOST_CONTRACT_AUX_LOOP_VARIANT_ \
, \
- CONTRACT_AUX_MPL_ASSERT_MSG(false, \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG(false, \
ERROR_too_many_loop_variant_parameters, ()); \
BOOST_PP_TUPLE_EAT(3) \
))(id, tpl, expr)
Modified: sandbox/contract/boost/contract/aux_/macro/parameter.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/macro/parameter.hpp (original)
+++ sandbox/contract/boost/contract/aux_/macro/parameter.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,28 +5,28 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_PARAMETER_HPP_
-#define CONTRACT_AUX_PARAMETER_HPP_
+#ifndef BOOST_CONTRACT_AUX_PARAMETER_HPP_
+#define BOOST_CONTRACT_AUX_PARAMETER_HPP_
// PUBLIC //
-#define CONTRACT_AUX_PARAMETER_BOOST_TYPE(param_name) \
+#define BOOST_CONTRACT_AUX_PARAMETER_BOOST_TYPE(param_name) \
/* use this name instead of Boost.Parameter's ..._type so (1) the same */ \
/* can be used in both the parameter requirement metafunction, (2) */ \
/* users don't have to use tag::paran_name::_ that explictly specifies */ \
/* the tag namespace, and (3) limits the use of ..._type which can lead */ \
/* to reserved symbols for param names ending with _ */ \
- CONTRACT_AUX_SYMBOL( (param_name)(type) )
+ BOOST_CONTRACT_AUX_SYMBOL( (param_name)(type) )
-#define CONTRACT_AUX_PARAMETER_BOOST_PARAM( \
+#define BOOST_CONTRACT_AUX_PARAMETER_BOOST_PARAM( \
tag_namespace, passing_name, name) \
BOOST_PARAMETER_NAME( (passing_name, tag_namespace) name ) \
/* this hides the use of the tag namespace and allows to use the same */ \
/* type name in type predicates as outside the parameter list */ \
typedef tag_namespace::name::_ \
- CONTRACT_AUX_PARAMETER_BOOST_TYPE(name);
+ BOOST_CONTRACT_AUX_PARAMETER_BOOST_TYPE(name);
-#define CONTRACT_AUX_PARAMETER_BOOST_TEMPLATE_PARAM( \
+#define BOOST_CONTRACT_AUX_PARAMETER_BOOST_TEMPLATE_PARAM( \
tag_namespace, passing_name, name) \
/* there's no Boost.Parameter API that allows to specify namespace and */ \
/* passing name so we need to use Boost.Parameter details directly */ \
Modified: sandbox/contract/boost/contract/aux_/mpl_assert.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/mpl_assert.hpp (original)
+++ sandbox/contract/boost/contract/aux_/mpl_assert.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,15 +5,15 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_MPL_ASSERT_HPP_
-#define CONTRACT_AUX_MPL_ASSERT_HPP_
+#ifndef BOOST_CONTRACT_AUX_MPL_ASSERT_HPP_
+#define BOOST_CONTRACT_AUX_MPL_ASSERT_HPP_
#include <boost/mpl/assert.hpp>
#include <boost/preprocessor/cat.hpp>
// PRIVATE //
-#define CONTRACT_AUX_MPL_ASSERT_MSG_(counter, condition, message, types) \
+#define BOOST_CONTRACT_AUX_MPL_ASSERT_MSG_(counter, condition, message, types) \
/* unfortunately, need to use Boost.MPL implementation detail */ \
/* to pass unique ID (not just __LINE__) so this macro can be expanded */ \
/* multiple times on the same line if with different IDs */ \
@@ -24,8 +24,8 @@
// PUBLIC //
// Allow to expand multiple assert macros on same line (without name clashes).
-#define CONTRACT_AUX_MPL_ASSERT_MSG(condition, message, types) \
- CONTRACT_AUX_MPL_ASSERT_MSG_( \
+#define BOOST_CONTRACT_AUX_MPL_ASSERT_MSG(condition, message, types) \
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG_( \
BOOST_MPL_AUX_PP_COUNTER(), /* uses Boost.MPL impl detail */ \
condition, message, types)
Modified: sandbox/contract/boost/contract/aux_/named_params.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/named_params.hpp (original)
+++ sandbox/contract/boost/contract/aux_/named_params.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_NAMED_PARAMS_HPP_
-#define CONTRACT_AUX_NAMED_PARAMS_HPP_
+#ifndef BOOST_CONTRACT_AUX_NAMED_PARAMS_HPP_
+#define BOOST_CONTRACT_AUX_NAMED_PARAMS_HPP_
#include <boost/parameter.hpp>
#include <boost/shared_ptr.hpp>
@@ -14,7 +14,7 @@
#include <boost/mpl/if.hpp>
#include <boost/type_traits/is_same.hpp>
-namespace contract { namespace aux { namespace named_params {
+namespace boost { namespace contract { namespace aux { namespace named_params {
// To declare default value for required parameters (which have no default).
struct no_default
@@ -39,7 +39,8 @@
};
template< typename ArgList, typename Tag >
-class find_tag {
+class find_tag
+{
typedef typename ArgList::key_type current_tag;
typedef typename ArgList::tail_type next_elem;
typedef typename boost::mpl::if_<boost::is_same<current_tag, Tag>,
@@ -52,14 +53,17 @@
};
template< typename Tag >
-struct find_tag<boost::parameter::aux::empty_arg_list, Tag> {
+struct find_tag<boost::parameter::aux::empty_arg_list, Tag>
+{
typedef boost::parameter::aux::empty_arg_list type;
};
template< typename ArgList, typename Tag, typename Default = no_default >
-class arg_type {
+class arg_type
+{
template< typename ArgElem >
- struct arg_reference {
+ struct arg_reference
+ {
// NOTE: Using reference here prevent to assign in parameters within
// the body (this makes in parameters equivalent to const&). If
// value_type is used instead of reference here, in-parameters can be
@@ -82,7 +86,7 @@
>::type::type type;
};
-}}} // namespace contract::aux::named_params
+} } } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/oldof.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/oldof.hpp (original)
+++ sandbox/contract/boost/contract/aux_/oldof.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,18 +5,19 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_OLDOF_HPP_
-#define CONTRACT_AUX_OLDOF_HPP_
+#ifndef BOOST_CONTRACT_AUX_OLDOF_HPP_
+#define BOOST_CONTRACT_AUX_OLDOF_HPP_
-#include <contract/oldof.hpp>
+#include <boost/contract/oldof.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/if.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// Must be empty struct so any attempt to use it will generate a compiler-error,
// plus struct name is used to report error message.
-struct ERROR_missing_const_copy_constructor_for_oldof_type {
+struct ERROR_missing_const_copy_constructor_for_oldof_type
+{
// Has dummy const-correct copy constructor from any type so it will
// never fail an old-of copy<>.
template< typename T >
@@ -24,11 +25,12 @@
};
// Select type above iff a type T has no old-of (not has_oldof<T>) so the
-// CONTRACT_OLDOF declaration will compile but any attempt to use the old-of
-// value for the empty struct type above in an assertion will generate a
+// BOOST_CONTRACT_OLDOF declaration will compile but any attempt to use the
+// old-of value for the empty struct type above in an assertion will generate a
// compiler-error unless the assertion adds has_oldof to its requirements.
template< typename T >
-struct oldof {
+struct oldof_ // Don't use oldof to leave that symbol for eventual user #define.
+{
typedef typename boost::mpl::if_< has_oldof<T>,
T
,
@@ -36,7 +38,7 @@
>::type type;
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/preprocessor/func_kind.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/preprocessor/func_kind.hpp (original)
+++ sandbox/contract/boost/contract/aux_/preprocessor/func_kind.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,67 +5,70 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_PP_FUNC_KIND_HPP_
-#define CONTRACT_AUX_PP_FUNC_KIND_HPP_
+#ifndef BOOST_CONTRACT_AUX_PP_FUNC_KIND_HPP_
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_HPP_
-#include <contract/aux_/config.hpp>
-#include <contract/detail/preprocessor/traits/func.hpp> // f
+#include <boost/contract/aux_/config.hpp>
+#include <boost/contract/detail/preprocessor/traits/func.hpp> // f
#include <boost/preprocessor/comparison/equal.hpp>
// PUBLIC //
// Kind `k` enumeration.
-#define CONTRACT_AUX_PP_FUNC_KIND_CONSTRUCTOR 1
-#define CONTRACT_AUX_PP_FUNC_KIND_DESTRUCTOR 2
-#define CONTRACT_AUX_PP_FUNC_KIND_FUNCTION 3
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_CONSTRUCTOR 1
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_DESTRUCTOR 2
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_FUNCTION 3
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k) \
- BOOST_PP_EQUAL(k, CONTRACT_AUX_PP_FUNC_KIND_CONSTRUCTOR)
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_CONSTRUCTOR(k) \
+ BOOST_PP_EQUAL(k, BOOST_CONTRACT_AUX_PP_FUNC_KIND_CONSTRUCTOR)
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k) \
- BOOST_PP_EQUAL(k, CONTRACT_AUX_PP_FUNC_KIND_DESTRUCTOR)
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_DESTRUCTOR(k) \
+ BOOST_PP_EQUAL(k, BOOST_CONTRACT_AUX_PP_FUNC_KIND_DESTRUCTOR)
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
- BOOST_PP_EQUAL(k, CONTRACT_AUX_PP_FUNC_KIND_FUNCTION)
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
+ BOOST_PP_EQUAL(k, BOOST_CONTRACT_AUX_PP_FUNC_KIND_FUNCTION)
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
/* FUTURE: leave this macro here because in the future members could be */ \
- /* detected using special API macros (CONTRACT_MEMBER_...) thus using k */ \
- /* instead of access level in f */ \
- BOOST_PP_COMPL(BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f)))
+ /* detected using special API macros (BOOST_CONTRACT_MEMBER_...) thus */ \
+ /* using k instead of access level in f */ \
+ BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_ACCESS(f)))
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f) \
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_NONSTATIC_MEMBER_FUNCTION(k, f) \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
, BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
, BOOST_PP_BITAND( \
- BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f)) \
+ BOOST_PP_IS_EMPTY( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f)) \
/* friend members are also contracted as static members */ \
- , BOOST_PP_IS_EMPTY(CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f)) \
+ , BOOST_PP_IS_EMPTY( \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f)) \
) \
) \
)
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_STATIC_MEMBER_FUNCTION(k, f) \
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_STATIC_MEMBER_FUNCTION(k, f) \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
, BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f) \
, BOOST_PP_BITOR( \
BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f))) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_STATIC(f))) \
/* friend members are also contracted as static members */ \
, BOOST_PP_COMPL(BOOST_PP_IS_EMPTY( \
- CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))) \
+ BOOST_CONTRACT_DETAIL_PP_FUNC_TRAITS_FRIEND(f))) \
) \
) \
)
-#define CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
+#define BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FREE_FUNCTION(k, f) \
BOOST_PP_BITAND( \
- CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
- , BOOST_PP_COMPL(CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)) \
+ BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_FUNCTION(k) \
+ , BOOST_PP_COMPL(BOOST_CONTRACT_AUX_PP_FUNC_KIND_IS_MEMBER(k, f)) \
)
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/preprocessor/iteration/arity_1.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/preprocessor/iteration/arity_1.hpp (original)
+++ sandbox/contract/boost/contract/aux_/preprocessor/iteration/arity_1.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,7 +5,7 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#undef CONTRACT_AUX_PP_ITERATION_ARITY
+#undef BOOST_CONTRACT_AUX_PP_ITERATION_ARITY
-#define CONTRACT_AUX_PP_ITERATION_ARITY BOOST_PP_FRAME_ITERATION(1)
+#define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY BOOST_PP_FRAME_ITERATION(1)
Modified: sandbox/contract/boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp (original)
+++ sandbox/contract/boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,30 +5,30 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#undef CONTRACT_AUX_PP_ITERATION_IS_MEMBER
-#undef CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
-#undef CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+#undef BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER
+#undef BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+#undef BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
#if BOOST_PP_FRAME_ITERATION(2) == 0 // Free func.
-# define CONTRACT_AUX_PP_ITERATION_IS_MEMBER 0
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER 0
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
#elif BOOST_PP_FRAME_ITERATION(2) == 1 // Member func.
-# define CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
#elif BOOST_PP_FRAME_ITERATION(2) == 2 // Const member func.
-# define CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_CONST const
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST const
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE /* empty */
#elif BOOST_PP_FRAME_ITERATION(2) == 3 // Volatile member func.
-# define CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE volatile
+# define BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST /* empty */
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE volatile
#elif BOOST_PP_FRAME_ITERATION(2) == 4 // Const volatile member func.
-# define CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_CONST const
-# define CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE volatile
+# define BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER 1
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST const
+# define BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE volatile
#else
# error "INTERNAL ERROR: invalid iteration index (in frame 2)"
#endif
Modified: sandbox/contract/boost/contract/aux_/preprocessor/iteration/params.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/preprocessor/iteration/params.hpp (original)
+++ sandbox/contract/boost/contract/aux_/preprocessor/iteration/params.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,15 +5,15 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_PP_ITERATION_PARAMS_HPP_
-#define CONTRACT_AUX_PP_ITERATION_PARAMS_HPP_
+#ifndef BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_HPP_
+#define BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_HPP_
-#include <contract/config.hpp>
+#include <boost/contract/config.hpp>
-#define CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY(file) \
- (3, (0, CONTRACT_CONFIG_FUNCTION_ARITY_MAX, file))
+#define BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY(file) \
+ (3, (0, BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX, file))
-#define CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER(file) \
+#define BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER(file) \
(3, (0, 4, file))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/result_const.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/result_const.hpp (original)
+++ sandbox/contract/boost/contract/aux_/result_const.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,14 +5,14 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_RESULT_CONST_HPP_
-#define CONTRACT_AUX_RESULT_CONST_HPP_
+#ifndef BOOST_CONTRACT_AUX_RESULT_CONST_HPP_
+#define BOOST_CONTRACT_AUX_RESULT_CONST_HPP_
-#include <contract/aux_/arg_const.hpp>
+#include <boost/contract/aux_/arg_const.hpp>
#include <boost/type_traits/is_void.hpp>
#include <boost/mpl/if.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
class void_result {}; // Must be copyable so to be returned.
@@ -26,7 +26,7 @@
>::type type;
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/signature_traits.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/signature_traits.hpp (original)
+++ sandbox/contract/boost/contract/aux_/signature_traits.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,14 +6,14 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_SIGNATURE_TRAITS_HPP_
-# define CONTRACT_AUX_SIGNATURE_TRAITS_HPP_
+# ifndef BOOST_CONTRACT_AUX_SIGNATURE_TRAITS_HPP_
+# define BOOST_CONTRACT_AUX_SIGNATURE_TRAITS_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/arg_const.hpp>
-#include <contract/aux_/result_const.hpp>
-#include <contract/aux_/mpl_assert.hpp>
-#include <contract/aux_/preprocessor/iteration/params.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/arg_const.hpp>
+#include <boost/contract/aux_/result_const.hpp>
+#include <boost/contract/aux_/mpl_assert.hpp>
+#include <boost/contract/aux_/preprocessor/iteration/params.hpp>
#include <boost/function.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
@@ -25,33 +25,33 @@
#include <boost/preprocessor/iteration/iterate.hpp>
#include <list>
-#define CONTRACT_comma_class_Base(z, n, unused) \
+#define BOOST_CONTRACT_comma_class_Base(z, n, unused) \
, class BOOST_PP_CAT(Base, n)
-#define CONTRACT_comma_Base(z, n, unused) \
+#define BOOST_CONTRACT_comma_Base(z, n, unused) \
, BOOST_PP_CAT(Base, n)
-#define CONTRACT_Arg(z, n, unused) \
+#define BOOST_CONTRACT_Arg(z, n, unused) \
BOOST_PP_CAT(Arg, n)
-#define CONTRACT_comma_typename_Arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_typename_Arg(z, n, unused) \
, typename BOOST_PP_CAT(Arg, n)
-#define CONTRACT_typedef_arg_types(z, n, unused) \
+#define BOOST_CONTRACT_typedef_arg_types(z, n, unused) \
typedef BOOST_PP_CAT(Arg, n) BOOST_PP_CAT(arg_type, n) ; \
typedef typename arg_const< BOOST_PP_CAT(Arg, n) >::type \
BOOST_PP_CAT(const_arg_type, n) ;
-#define CONTRACT_const_arg_type(z, n, unused) \
+#define BOOST_CONTRACT_const_arg_type(z, n, unused) \
BOOST_PP_CAT(const_arg_type, n)
-#define CONTRACT_comma_const_arg_type(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg_type(z, n, unused) \
, BOOST_PP_CAT(const_arg_type, n)
-#define CONTRACT_typedef_constructor_and_subcontracted_oldof_type() \
+#define BOOST_CONTRACT_typedef_constructor_and_subcontracted_oldof_type() \
typedef \
bound_postcondition_type \
( * constructor_oldof_type ) \
( \
body_type \
, const_obj_type const \
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_const_arg_type, ~) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_const_arg_type, ~) \
) \
; \
typedef \
@@ -60,31 +60,32 @@
* subcontracted_oldof_type ) \
( \
body_type \
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_const_arg_type, ~) \
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_const_arg_type, ~) \
) \
const \
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
;
-#define CONTRACT_typedef_derived_traits_base(z, n, unused) \
+#define BOOST_CONTRACT_typedef_derived_traits_base(z, n, unused) \
typedef \
signature_traits< \
Result \
( BOOST_PP_CAT(Base, n) :: * ) \
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_Arg, ~) ) \
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST \
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
+ ( BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_Arg, ~) ) \
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST \
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE \
> \
BOOST_PP_CAT(base, n) \
;
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template< typename F >
-struct signature_traits {
- CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
- ERROR_too_many_function_parameters_see_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
+struct signature_traits
+{
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
+ERROR_too_many_function_parameters_see_BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
(types< F >));
};
@@ -97,105 +98,111 @@
// the compiler more).
template<
typename F
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_class_Base, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_class_Base, ~)
>
-struct derived_signature_traits {
- CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
- ERROR_too_many_function_parameters_see_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
+struct derived_signature_traits
+{
+ BOOST_CONTRACT_AUX_MPL_ASSERT_MSG(sizeof(F) == 0,
+ERROR_too_many_function_parameters_see_BOOST_CONTRACT_CONFIG_FUNCTION_ARITY_MAX,
(types< F /* can't print bases b/c could be more than 4 */ >));
};
-}} // namespace contract::aux
+} } } // namespace
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/signature_traits.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/signature_traits.hpp")
# include BOOST_PP_ITERATE()
-# undef CONTRACT_comma_class_Base
-# undef CONTRACT_comma_Base
-# undef CONTRACT_Arg
-# undef CONTRACT_comma_typename_Arg
-# undef CONTRACT_typedef_arg
-# undef CONTRACT_const_arg_type
-# undef CONTRACT_comma_const_arg_type
-# undef CONTRACT_typedef_constructor_and_subcontracted_oldof_type
-# undef CONTRACT_typedef_derived_traits_base
+# undef BOOST_CONTRACT_comma_class_Base
+# undef BOOST_CONTRACT_comma_Base
+# undef BOOST_CONTRACT_Arg
+# undef BOOST_CONTRACT_comma_typename_Arg
+# undef BOOST_CONTRACT_typedef_arg
+# undef BOOST_CONTRACT_const_arg_type
+# undef BOOST_CONTRACT_comma_const_arg_type
+# undef BOOST_CONTRACT_typedef_constructor_and_subcontracted_oldof_type
+# undef BOOST_CONTRACT_typedef_derived_traits_base
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1 // arity iteration
# define BOOST_PP_ITERATION_PARAMS_2 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER( \
- "contract/aux_/signature_traits.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_CV_MEMBER( \
+ "boost/contract/aux_/signature_traits.hpp")
# include BOOST_PP_ITERATE()
#elif BOOST_PP_ITERATION_DEPTH() == 2 // free, member, cv iteration
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
// Define ..._IS_MEMBER, ..._MEMBER_CONST, and ..._MEMBER_VOLATILE (iter 2).
-# include <contract/aux_/preprocessor/iteration/cv_member_2.hpp>
+# include <boost/contract/aux_/preprocessor/iteration/cv_member_2.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template<
typename Result
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_typename_Arg, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_typename_Arg, ~)
>
struct signature_traits<
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
- * )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY, CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::) * )
+ (
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~)
+ )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
> {
// Function types.
typedef Result result_type;
typedef typename result_const< Result >::type const_result_type;
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_typedef_arg_types, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_typedef_arg_types, ~)
// Object types.
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
typedef Class class_type;
- typedef Class CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE*
+ typedef Class BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE*
cv_qualified_obj_type;
- typedef Class const CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE*
+ typedef Class const BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE*
const_obj_type;
)
// Body function types.
typedef
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
* body_type )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY, CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ (
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~)
+ )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
;
// Precondition function types.
typedef
void
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
* precondition_type )
(
body_type
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_type, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_type, ~)
)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const)
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const)
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
;
typedef
void
(* static_precondition_type)
(
body_type
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_type, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_type, ~)
)
;
@@ -204,9 +211,9 @@
boost::function<
void
(
- BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_const_arg_type, ~)
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_ARITY)
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_const_arg_type, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY)
const_result_type
)
>
@@ -214,20 +221,20 @@
;
typedef
bound_postcondition_type
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
* oldof_type )
(
body_type
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_type, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_type, ~)
)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const)
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, const)
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
;
- BOOST_PP_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
- CONTRACT_typedef_constructor_and_subcontracted_oldof_type \
- , \
- BOOST_PP_EMPTY \
+ BOOST_PP_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
+ BOOST_CONTRACT_typedef_constructor_and_subcontracted_oldof_type
+ ,
+ BOOST_PP_EMPTY
)()
// NOTE: Static class invariant is defined even if not a member because
@@ -237,46 +244,50 @@
typedef void ( * static_class_invariant_type ) ( ) ;
// Dynamic const or const volatile class invariant.
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
typedef void ( Class:: * class_invariant_type ) ( ) const
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE ;
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE ;
)
};
template<
typename Result
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
- BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_typename_Arg, ~)
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_class_Base, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER)
+ BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, class Class)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_typename_Arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_class_Base, ~)
>
struct derived_signature_traits<
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
- * )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY, CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, CONTRACT_comma_Base, ~)
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::) * )
+ (
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~)
+ )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_Base, ~)
>
: signature_traits<
Result
- ( BOOST_PP_EXPR_IIF(CONTRACT_AUX_PP_ITERATION_IS_MEMBER,
- Class::)
- * )
- ( BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_Arg, ~) )
- CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
- CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
+ ( BOOST_PP_EXPR_IIF(BOOST_CONTRACT_AUX_PP_ITERATION_IS_MEMBER, Class::)
+ * )
+ (
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_Arg, ~)
+ )
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_CONST
+ BOOST_CONTRACT_AUX_PP_ITERATION_MEMBER_VOLATILE
>
{
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_typedef_derived_traits_base, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_typedef_derived_traits_base, ~)
};
-}} // namespace contract::aux
+} } } // namespace
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
Modified: sandbox/contract/boost/contract/aux_/subcontract/class_invariant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/class_invariant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/class_invariant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,68 +6,71 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_SUBCONTRACT_CLASS_INVARIANT_HPP_
-# define CONTRACT_AUX_SUBCONTRACT_CLASS_INVARIANT_HPP_
+# ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_CLASS_INVARIANT_HPP_
+# define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_CLASS_INVARIANT_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/subcontract/from.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/subboost/contract/from.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
-#define CONTRACT_class_Base(z, n, unused) \
+#define BOOST_CONTRACT_class_Base(z, n, unused) \
, class BOOST_PP_CAT(Base, n)
-#define CONTRACT_comma_base_params(z, n, unused) \
- , BOOST_PP_CAT(Base, n) const CONTRACT_iteration_volatile* const \
+#define BOOST_CONTRACT_comma_base_params(z, n, unused) \
+ , BOOST_PP_CAT(Base, n) const BOOST_CONTRACT_iteration_volatile* const \
BOOST_PP_CAT(base, n) \
, void (BOOST_PP_CAT(Base, n)::* const \
BOOST_PP_CAT(sub_class_inv, n)) ( ) \
- const CONTRACT_iteration_volatile
+ const BOOST_CONTRACT_iteration_volatile
-#define CONTRACT_base_class_inv_check(z, n, unused) \
- if(is_subcontracted_from< Class, BOOST_PP_CAT(Base, n) >::value) { \
+#define BOOST_CONTRACT_base_class_inv_check(z, n, unused) \
+ if(is_subcontracted_from< Class, BOOST_PP_CAT(Base, n) >::value) \
+ { \
(BOOST_PP_CAT(base, n)->*BOOST_PP_CAT(sub_class_inv, n))(); \
}
# define BOOST_PP_ITERATION_PARAMS_1 (3, (0, 1, \
- "contract/aux_/subcontract/class_invariant.hpp"))
+ "boost/contract/aux_/subboost/contract/class_invariant.hpp"))
# include BOOST_PP_ITERATE() // Iterate over volatile or not.
-# undef CONTRACT_class_Base
-# undef CONTRACT_comma_base_params
-# undef CONTRACT_base_class_inv_check
+# undef BOOST_CONTRACT_class_Base
+# undef BOOST_CONTRACT_comma_base_params
+# undef BOOST_CONTRACT_base_class_inv_check
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
# if BOOST_PP_FRAME_ITERATION(1) == 0
-# define CONTRACT_iteration_volatile /* empty */
+# define BOOST_CONTRACT_iteration_volatile /* empty */
# elif BOOST_PP_FRAME_ITERATION(1) == 1
-# define CONTRACT_iteration_volatile volatile
+# define BOOST_CONTRACT_iteration_volatile volatile
# else
# error "INTERNAL ERROR: iteration index out-of-range"
# endif
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template<
class Class
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX, CONTRACT_class_Base, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_class_Base, ~)
>
void subcontract_class_invariant(
// NOTE: Even if the class inv func name is known a priori, func must be
// passed by ptr to avoid error in accessing a private func.
- Class const CONTRACT_iteration_volatile* const obj
- , void (Class::* const this_class_inv) ( ) const CONTRACT_iteration_volatile
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_base_params, ~)
+ Class const BOOST_CONTRACT_iteration_volatile* const obj
+ , void (Class::* const this_class_inv) ( void )
+ const BOOST_CONTRACT_iteration_volatile
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_base_params, ~)
) {
// Check all class invs in short-circuit AND (1st throw stops check).
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_base_class_inv_check, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_base_class_inv_check, ~)
(obj->*this_class_inv)();
}
-}} // namespace contract::aux
+} } } // namespace
-# undef CONTRACT_iteration_volatile
+# undef BOOST_CONTRACT_iteration_volatile
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
#endif // iteration
Modified: sandbox/contract/boost/contract/aux_/subcontract/from.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/from.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/from.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,19 +5,20 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_SUBCONTRACT_FROM_HPP_
-#define CONTRACT_AUX_SUBCONTRACT_FROM_HPP_
+#ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_FROM_HPP_
+#define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_FROM_HPP_
#include <boost/type_traits/is_same.hpp>
#include <boost/mpl/not.hpp>
#include <boost/mpl/if.hpp>
#include <boost/mpl/and.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
namespace private_ { // This type should not be used outside this file.
template< class Derived, class Base >
- struct not_subcontracted_tag {
+ struct not_subcontracted_tag
+ {
// NOTE: This is the special type used to tag a pair Derived-Base when
// a function in the Derived class shall not subcontract from the Base
// class (because no base class function is actually being overridden).
@@ -41,7 +42,8 @@
// virtual function or the (dynamic, static, or volatile) class invariant
// function (use introspection).
template< class Derived, class Base, class BaseHasFunction >
-struct subcontract_from {
+struct subcontract_from
+{
// Subcontract iff Base != Derived && HasVirtualFunction
typedef typename boost::mpl::if_<
boost::mpl::and_<
@@ -54,7 +56,7 @@
>::type type;
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/subcontract/has_class_invariant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/has_class_invariant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/has_class_invariant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,29 +5,31 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_SUBCONTRACT_HAS_CLASS_INVARIANT_HPP_
-#define CONTRACT_AUX_SUBCONTRACT_HAS_CLASS_INVARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_HAS_CLASS_INVARIANT_HPP_
+#define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_HAS_CLASS_INVARIANT_HPP_
-#include <contract/aux_/has_xxx_member_function.hpp>
+#include <boost/contract/aux_/has_xxx_member_function.hpp>
// NOTE: This symbol must be used to name the subcontract class invariant meber
// function in order for this introspection check to work.
-#define CONTRACT_AUX_CODE_SUBCONTRACT_HAS_CLASS_INVARIANT_FUNC \
- CONTRACT_AUX_SYMBOL( (subcontracted_class_invariant) )
+#define BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_HAS_CLASS_INVARIANT_FUNC \
+ BOOST_CONTRACT_AUX_SYMBOL( (subcontracted_class_invariant) )
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
-// Decl has_subcontracted_class_invariant< void (Base::*) ( ) const> metafunc.
+// Declare has_subcontracted_class_invariant< void (Base::*) ( void ) const>
+// meta-function.
// NOTE: This can be done here because all class invariant functions have the
// same name and signature. Unfortunately, that is not true instead of user
-// defined member functions for which the introspecting metafunction must be
-// defined within the user class decl itself by the expansion of the FUNCTION
-// macro (and similarly for the virtual specifier introspection tag functions
-// and check metafunctions that also depend by the func names and signature).
-CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(has_subcontracted_class_invariant,
- CONTRACT_AUX_CODE_SUBCONTRACT_HAS_CLASS_INVARIANT_FUNC)
+// defined member functions for which the introspecting meta-function must be
+// defined within the user class declaration itself by the expansion of the
+// FUNCTION macro (and similarly for the virtual specifier introspection tag
+// functions and check meta-functions that also depend by the function names
+// and signature).
+BOOST_CONTRACT_AUX_HAS_XXX_MEMBER_FUNCTION(has_subcontracted_class_invariant,
+ BOOST_CONTRACT_AUX_CODE_SUBBOOST_CONTRACT_HAS_CLASS_INVARIANT_FUNC)
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/subcontract/oldof.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/oldof.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/oldof.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,29 +6,29 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_SUBCONTRACT_OLDOF_HPP_
-# define CONTRACT_AUX_SUBCONTRACT_OLDOF_HPP_
+# ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_OLDOF_HPP_
+# define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_OLDOF_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/subcontract/from.hpp>
-#include <contract/aux_/preprocessor/iteration/params.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/subboost/contract/from.hpp>
+#include <boost/contract/aux_/preprocessor/iteration/params.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
#include <list>
-#define CONTRACT_comma_base_params(z, n, unused) \
+#define BOOST_CONTRACT_comma_base_params(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(base, n)::const_obj_type const \
BOOST_PP_CAT(base, n) \
, typename SignTraits::BOOST_PP_CAT(base, n)::subcontracted_oldof_type \
const BOOST_PP_CAT(sub_oldof, n)
-#define CONTRACT_comma_const_arg_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg_param(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(const_arg_type, n) \
BOOST_PP_CAT(const_arg, n)
-#define CONTRACT_comma_const_arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg(z, n, unused) \
, BOOST_PP_CAT(const_arg, n)
-#define CONTRACT_base_oldof_eval(z, n, unused) \
+#define BOOST_CONTRACT_base_oldof_eval(z, n, unused) \
if(is_subcontracted_from< \
typename SignTraits::class_type \
, typename SignTraits::BOOST_PP_CAT(base, n)::class_type \
@@ -38,57 +38,57 @@
(BOOST_PP_CAT(base, n)->*BOOST_PP_CAT(sub_oldof, n)) \
( \
typename SignTraits::BOOST_PP_CAT(base, n)::body_type() \
- BOOST_PP_REPEAT_ ## z(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_const_arg, ~) \
+ BOOST_PP_REPEAT_ ## z(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_const_arg, ~) \
); \
all_posts.insert(all_posts.end(), \
base_posts.begin(), base_posts.end()); \
}
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/subcontract/oldof.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/subboost/contract/oldof.hpp")
# include BOOST_PP_ITERATE()
-# undef CONTRACT_comma_base_params
-# undef CONTRACT_comma_const_arg_param
-# undef CONTRACT_comma_const_arg
-# undef CONTRACT_base_oldof_eval
+# undef BOOST_CONTRACT_comma_base_params
+# undef BOOST_CONTRACT_comma_const_arg_param
+# undef BOOST_CONTRACT_comma_const_arg
+# undef BOOST_CONTRACT_base_oldof_eval
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template< class SignTraits >
std::list< typename SignTraits::bound_postcondition_type >
subcontract_oldof(
typename SignTraits::const_obj_type const obj
, typename SignTraits::oldof_type const this_oldof
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_base_params, ~)
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_param, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_base_params, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_param, ~)
) {
// Execute all old-of bindings to return list of all bound post functions.
typedef std::list< typename SignTraits::bound_postcondition_type >
all_posts_type;
all_posts_type all_posts;
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_base_oldof_eval, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_base_oldof_eval, ~)
typename SignTraits::bound_postcondition_type post = (obj->*this_oldof)(
typename SignTraits::body_type()
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg, ~)
);
all_posts.push_back(post);
return all_posts;
}
-}} // namespace contract::aux
+} } } // namespace
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
Modified: sandbox/contract/boost/contract/aux_/subcontract/postcondition.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/postcondition.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/postcondition.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,42 +6,42 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_SUBCONTRACT_POSTCONDITION_HPP_
-# define CONTRACT_AUX_SUBCONTRACT_POSTCONDITION_HPP_
+# ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_POSTCONDITION_HPP_
+# define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_POSTCONDITION_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/preprocessor/iteration/params.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/preprocessor/iteration/params.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/repetition/enum.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
#include <list>
-#define CONTRACT_comma_const_arg_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg_param(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(const_arg_type, n) \
BOOST_PP_CAT(const_arg, n)
-#define CONTRACT_const_arg(z, n, unused) \
+#define BOOST_CONTRACT_const_arg(z, n, unused) \
BOOST_PP_CAT(const_arg, n)
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/subcontract/postcondition.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/subboost/contract/postcondition.hpp")
# include BOOST_PP_ITERATE()
-# undef CONTRACT_comma_const_arg_param
-# undef CONTRACT_const_arg
+# undef BOOST_CONTRACT_comma_const_arg_param
+# undef BOOST_CONTRACT_const_arg
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template< class SignTraits >
void subcontract_postcondition(
std::list< typename SignTraits::bound_postcondition_type >
const& subcontracted_bound_posts
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_param, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_param, ~)
, typename SignTraits::const_result_type const_result
) {
// Check all (bound with old-of and obj) post in short-circuit AND.
@@ -52,15 +52,15 @@
++post
) {
(*post)( // If one throws, entire AND fails.
- BOOST_PP_ENUM(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_const_arg, ~)
- BOOST_PP_COMMA_IF(CONTRACT_AUX_PP_ITERATION_ARITY)
+ BOOST_PP_ENUM(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_const_arg, ~)
+ BOOST_PP_COMMA_IF(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY)
const_result
);
} // None threw so entire AND passes.
}
-}} // namespace contract::aux
+} } } // namespace
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
Modified: sandbox/contract/boost/contract/aux_/subcontract/precondition.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/precondition.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/precondition.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -6,38 +6,39 @@
// Home at http://sourceforge.net/projects/contractpp
#if !BOOST_PP_IS_ITERATING
-# ifndef CONTRACT_AUX_SUBCONTRACT_PRECONDITION_HPP_
-# define CONTRACT_AUX_SUBCONTRACT_PRECONDITION_HPP_
+# ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_PRECONDITION_HPP_
+# define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_PRECONDITION_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/subcontract/from.hpp>
-#include <contract/aux_/preprocessor/iteration/params.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/subboost/contract/from.hpp>
+#include <boost/contract/aux_/preprocessor/iteration/params.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
-#define CONTRACT_comma_base_params(z, n, unused) \
+#define BOOST_CONTRACT_comma_base_params(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(base, n)::const_obj_type const \
BOOST_PP_CAT(base, n) \
, typename SignTraits::BOOST_PP_CAT(base, n)::precondition_type const \
BOOST_PP_CAT(sub_pre, n)
-#define CONTRACT_comma_const_arg_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg_param(z, n, unused) \
, typename SignTraits::BOOST_PP_CAT(const_arg_type, n) \
BOOST_PP_CAT(const_arg, n)
-#define CONTRACT_comma_const_arg(z, n, unused) \
+#define BOOST_CONTRACT_comma_const_arg(z, n, unused) \
, BOOST_PP_CAT(const_arg, n)
-#define CONTRACT_and_not_first_error(z, n, unused) \
+#define BOOST_CONTRACT_and_not_first_error(z, n, unused) \
&& ! BOOST_PP_CAT(first_error, n)
-#define CONTRACT_begin_base_pre_check(z, n, unused) \
+#define BOOST_CONTRACT_begin_base_pre_check(z, n, unused) \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
+ BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
bool BOOST_PP_CAT(first_error, n) = \
true /* assume error until 1st checked */ \
- BOOST_PP_REPEAT_ ## z(n, CONTRACT_and_not_first_error, ~) \
+ BOOST_PP_REPEAT_ ## z(n, BOOST_CONTRACT_and_not_first_error, ~) \
; \
) \
- try { \
+ try \
+ { \
if(is_subcontracted_from< \
typename SignTraits::class_type \
, typename SignTraits::BOOST_PP_CAT(base, n)::class_type \
@@ -45,87 +46,94 @@
) { \
(BOOST_PP_CAT(base, n)->*BOOST_PP_CAT(sub_pre, n))( \
typename SignTraits::BOOST_PP_CAT(base, n)::body_type() \
- BOOST_PP_REPEAT_ ## z(CONTRACT_AUX_PP_ITERATION_ARITY, \
- CONTRACT_comma_const_arg, ~) \
+ BOOST_PP_REPEAT_ ## z(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY, \
+ BOOST_CONTRACT_comma_const_arg, ~) \
); \
return; /* this base's pre passed so entire OR is true (done) */ \
} /* else, not subcontracting from this base */ \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
+ BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
BOOST_PP_CAT(first_error, n) = false; /* not subcontr so no err */ \
) \
throw not_subcontracting(); /* not subcontracting but check next */ \
- } catch(...) { /* this check failed or not subcontracting this base */
-#define CONTRACT_end_base_pre_check(z, n, unused) \
+ } \
+ catch(...) /* either this check failed or not subcontracting this base */ \
+ { /* end with macro below... */
+#define BOOST_CONTRACT_end_base_pre_check(z, n, unused) \
+ /* ...start with macro above */ \
BOOST_PP_EXPR_IIF( \
- CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
+ BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01, \
+ /* if this is 1st error... */ \
if(BOOST_PP_CAT(first_error, BOOST_PP_SUB(BOOST_PP_DEC( \
- CONTRACT_CONFIG_INHERITANCE_MAX), n))) /* if 1st err... */\
+ BOOST_CONTRACT_CONFIG_INHERITANCE_MAX), n))) \
) \
throw; /* ...re-throw error */ \
}
# define BOOST_PP_ITERATION_PARAMS_1 \
- CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
- "contract/aux_/subcontract/precondition.hpp")
+ BOOST_CONTRACT_AUX_PP_ITERATION_PARAMS_ARITY( \
+ "boost/contract/aux_/subboost/contract/precondition.hpp")
# include BOOST_PP_ITERATE()
-# undef CONTRACT_comma_base_params
-# undef CONTRACT_comma_const_arg_param
-# undef CONTRACT_comma_const_arg
-# undef CONTRACT_and_not_first_error
-# undef CONTRACT_begin_base_pre_check
-# undef CONTRACT_end_base_pre_check
+# undef BOOST_CONTRACT_comma_base_params
+# undef BOOST_CONTRACT_comma_const_arg_param
+# undef BOOST_CONTRACT_comma_const_arg
+# undef BOOST_CONTRACT_and_not_first_error
+# undef BOOST_CONTRACT_begin_base_pre_check
+# undef BOOST_CONTRACT_end_base_pre_check
# endif // #include guard
#elif BOOST_PP_ITERATION_DEPTH() == 1
-// Define CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
-# include <contract/aux_/preprocessor/iteration/arity_1.hpp>
+// Define BOOST_CONTRACT_AUX_PP_ITERATION_ARITY (from iteration frame 1).
+# include <boost/contract/aux_/preprocessor/iteration/arity_1.hpp>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template< class SignTraits >
void subcontract_precondition(
typename SignTraits::const_obj_type const obj
, typename SignTraits::precondition_type const this_pre
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_base_params, ~)
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg_param, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_base_params, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg_param, ~)
) {
// Check all pre in short-circuit OR (OK unless all throw).
// Nesting used to re-throw the very first exception in case all fail.
struct not_subcontracting {}; // Internal only, don't inherit from except.
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_begin_base_pre_check, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_begin_base_pre_check, ~)
BOOST_PP_EXPR_IIF(
- CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01,
+ BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01,
bool first_error =
- true BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_and_not_first_error, ~)
+ true BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_and_not_first_error, ~)
;
)
- try {
+ try
+ {
(obj->*this_pre)(
typename SignTraits::body_type()
- BOOST_PP_REPEAT(CONTRACT_AUX_PP_ITERATION_ARITY,
- CONTRACT_comma_const_arg, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_AUX_PP_ITERATION_ARITY,
+ BOOST_CONTRACT_comma_const_arg, ~)
);
return; // This check passed so entire OR is true.
- } catch(...) {
+ }
+ catch(...)
+ {
BOOST_PP_EXPR_IIF(
- CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01,
+ BOOST_CONTRACT_AUX_CONFIG_REPORT_OVERRIDDEN_PRECONDITION_FAILURE_01,
if(first_error) // If this is 1st error...
)
throw; // ...re-throw error.
}
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_end_base_pre_check, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_end_base_pre_check, ~)
throw not_subcontracting(); // Should never get here.
}
-}} // namespace contract::aux
+} } } // namespace
#else // iteration
# error "INTERNAL ERROR: iteration index out-of-range"
Modified: sandbox/contract/boost/contract/aux_/subcontract/static_class_invariant.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/subcontract/static_class_invariant.hpp (original)
+++ sandbox/contract/boost/contract/aux_/subcontract/static_class_invariant.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,48 +5,49 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_SUBCONTRACT_STATIC_CLASS_INVARIANT_HPP_
-#define CONTRACT_AUX_SUBCONTRACT_STATIC_CLASS_INVARIANT_HPP_
+#ifndef BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_STATIC_CLASS_INVARIANT_HPP_
+#define BOOST_CONTRACT_AUX_SUBBOOST_CONTRACT_STATIC_CLASS_INVARIANT_HPP_
-#include <contract/config.hpp>
-#include <contract/aux_/subcontract/from.hpp>
+#include <boost/contract/config.hpp>
+#include <boost/contract/aux_/subboost/contract/from.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
-#define CONTRACT_comma_class_Base(z, n, unused) \
+#define BOOST_CONTRACT_comma_class_Base(z, n, unused) \
, class BOOST_PP_CAT(Base, n)
-#define CONTRACT_comma_base_param(z, n, unused) \
+#define BOOST_CONTRACT_comma_base_param(z, n, unused) \
, void (* BOOST_PP_CAT(sub_static_class_inv, n)) ( )
-#define CONTRACT_base_static_class_inv_check(z, n, unused) \
- if(is_subcontracted_from< Class, BOOST_PP_CAT(Base, n) >::value) { \
+#define BOOST_CONTRACT_base_static_class_inv_check(z, n, unused) \
+ if(is_subcontracted_from< Class, BOOST_PP_CAT(Base, n) >::value) \
+ { \
(*BOOST_PP_CAT(sub_static_class_inv, n))(); \
}
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
template<
class Class
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_class_Base, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_class_Base, ~)
>
void subcontract_static_class_invariant(
// NOTE: Even if the class inv func name is known a priori, func must be
// passed by ptr to avoid error in accessing a private func.
- void (* this_static_class_inv) ( )
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_comma_base_param, ~)
+ void (* this_static_class_inv) ( void )
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_comma_base_param, ~)
) {
// Check all static class inv in short-circuit AND (1st throw stops check).
- BOOST_PP_REPEAT(CONTRACT_CONFIG_INHERITANCE_MAX,
- CONTRACT_base_static_class_inv_check, ~)
+ BOOST_PP_REPEAT(BOOST_CONTRACT_CONFIG_INHERITANCE_MAX,
+ BOOST_CONTRACT_base_static_class_inv_check, ~)
(*this_static_class_inv)();
}
-}} // namespace contract::aux
+} } } // namespace
-#undef CONTRACT_comma_class_Base
-#undef CONTRACT_comma_base_param
-#undef CONTRACT_base_static_class_inv_check
+#undef BOOST_CONTRACT_comma_class_Base
+#undef BOOST_CONTRACT_comma_base_param
+#undef BOOST_CONTRACT_base_static_class_inv_check
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/symbol.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/symbol.hpp (original)
+++ sandbox/contract/boost/contract/aux_/symbol.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,8 +5,8 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_SYMBOL_HPP_
-#define CONTRACT_AUX_SYMBOL_HPP_
+#ifndef BOOST_CONTRACT_AUX_SYMBOL_HPP_
+#define BOOST_CONTRACT_AUX_SYMBOL_HPP_
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/seq/cat.hpp>
@@ -14,18 +14,18 @@
// PRIVATE //
-#define CONTRACT_AUX_SYMBOL_POSTFIX_(s, unused, tokens) \
- BOOST_PP_CAT(tokens, CONTRACT_AUX_SYMBOL_INFIX)
+#define BOOST_CONTRACT_AUX_SYMBOL_POSTFIX_(s, unused, tokens) \
+ BOOST_PP_CAT(tokens, BOOST_CONTRACT_AUX_SYMBOL_INFIX)
// PUBLIC //
// All these macros cannot use `_` because if (user) symbols have leading or
// trailing `_`, cat symbol might have double `__` which is reserved by C++.
-#define CONTRACT_AUX_SYMBOL_INFIX X
+#define BOOST_CONTRACT_AUX_SYMBOL_INFIX X
-#define CONTRACT_AUX_SYMBOL(seq) \
- BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM(CONTRACT_AUX_SYMBOL_POSTFIX_, ~, \
- (contract_aux) seq))
+#define BOOST_CONTRACT_AUX_SYMBOL(seq) \
+ BOOST_PP_SEQ_CAT(BOOST_PP_SEQ_TRANSFORM( \
+ BOOST_CONTRACT_AUX_SYMBOL_POSTFIX_, ~, (contract_aux) seq))
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/thread_variable.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/thread_variable.hpp (original)
+++ sandbox/contract/boost/contract/aux_/thread_variable.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,33 +5,40 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_THREAD_VARIABLE_HPP_
-#define CONTRACT_AUX_THREAD_VARIABLE_HPP_
+#ifndef BOOST_CONTRACT_AUX_THREAD_VARIABLE_HPP_
+#define BOOST_CONTRACT_AUX_THREAD_VARIABLE_HPP_
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+#include <boost/contract/aux_/config.hpp>
+
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
# include <boost/thread/recursive_mutex.hpp> // Required only if thread safe.
#endif
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
-template<typename T>
-class thread_variable {
-public:
- // Both implicit and default constructors.
- /* implicit */ thread_variable(T const& value): value_(value) {}
- thread_variable(): value_(T()) {} // Default T() requires only if this used.
+template< typename T >
+class thread_variable
+{
+ public: /* implicit */ thread_variable ( T const& value ) : value_(value) {}
+
+ // Default T() required only if this is actually used.
+ public: thread_variable ( void ) : value_(T()) {}
// Set //
- void operator=(T const& value) { // Sync so cannot return object&.
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+ // Sync so cannot return object&.
+ public: void operator= ( T const& value )
+ {
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
boost::recursive_mutex::scoped_lock lock(mutex_);
#endif
value_ = value;
} // Release eventual lock.
- void operator=(T const& value) volatile { // Sync so cannot return object&.
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+ // Sync so cannot return object&.
+ public: void operator= ( T const& value ) volatile
+ {
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
boost::recursive_mutex::scoped_lock lock(mutex_);
#endif
value_ = value;
@@ -39,29 +46,32 @@
// Get //
- operator T() const { // Sync so must return object copy (by value).
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+ // Sync so must return object copy (by value).
+ public: operator T ( void ) const
+ {
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
boost::recursive_mutex::scoped_lock lock(mutex_);
#endif
return value_;
} // Release eventual lock.
- operator T() const volatile { // Sync so must return object copy (by value).
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+ // Sync so must return object copy (by value).
+ public: operator T ( void ) const volatile
+ {
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
boost::recursive_mutex::scoped_lock lock(mutex_);
#endif
return value_;
} // Release eventual lock.
-private:
- T value_;
+ private: T value_;
-#if CONTRACT_AUX_CONFIG_THREAD_SAFE_01
- mutable boost::recursive_mutex mutex_;
+#if BOOST_CONTRACT_AUX_CONFIG_THREAD_SAFE_01
+ private: mutable boost::recursive_mutex mutex_;
#endif
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/aux_/uninitialized.hpp
==============================================================================
--- sandbox/contract/boost/contract/aux_/uninitialized.hpp (original)
+++ sandbox/contract/boost/contract/aux_/uninitialized.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -5,19 +5,19 @@
// http://www.boost.org/LICENSE_1_0.txt)
// Home at http://sourceforge.net/projects/contractpp
-#ifndef CONTRACT_AUX_UNINITIALIZED_HPP_
-#define CONTRACT_AUX_UNINITIALIZED_HPP_
+#ifndef BOOST_CONTRACT_AUX_UNINITIALIZED_HPP_
+#define BOOST_CONTRACT_AUX_UNINITIALIZED_HPP_
#include <boost/type_traits/add_reference.hpp>
#include <boost/type_traits/add_pointer.hpp>
#include <cassert>
#include <stdexcept>
-namespace contract { namespace aux {
+namespace boost { namespace contract { namespace aux {
// This function is used as a default parameter value for parameter names
// that are specified together with an `=` which cannot be separated using
-// pp-metaprogramming (e.g., old-of and return values in postconditions).
+// pp meta-programming (e.g., old-of and return values in postconditions).
// However, this is used just to compile the code an this default value should
// never actually be used and this function should never be called (because the
// default value access an invalid pointer) so this function aborts.
@@ -25,19 +25,21 @@
// default parameter value because in some cases (e.g., if T is a & to a
// complex type like void_result) the cast will generate a compiler-error.
template< typename T >
-struct uninitialized {
+struct uninitialized
+{
// NOTE: This needs to be a template class with a static member function
// instead of just a template function because otherwise some compilers
// (MSVC) will not be able to deduce the template type (even if it is
// always explicitly specified when invoking the function).
- static typename boost::add_reference<T>::type value() {
- assert(false); // Internal Error: Should never execute this.
+ static typename boost::add_reference<T>::type value ( void )
+ {
+ assert(false); // Internal error, should never execute this.
typename boost::add_pointer<T>::type ptr = 0;
return *ptr;
}
};
-}} // namespace contract::aux
+} } } // namespace
#endif // #include guard
Modified: sandbox/contract/boost/contract/detail/preprocessor/array/first_n.hpp
==============================================================================
--- sandbox/contract/boost/contract/detail/preprocessor/array/first_n.hpp (original)
+++ sandbox/contract/boost/contract/detail/preprocessor/array/first_n.hpp 2013-03-04 16:57:44 EST (Mon, 04 Mar 2013)
@@ -1,21 +1,16 @@
-// Copyright (C) 2008-2012 Lorenzo Caminiti
-// Distributed under the Boost Software License, Version 1.0
-// (see accompanying file LICENSE_1_0.txt or a copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-// Home at http://sourceforge.net/projects/contractpp
-
-#ifndef CONTRACT_DETAIL_PP_ARRAY_FIRST_N_HPP_
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_HPP_
-
-// WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT!
-// Instead modify the generation script "<FILE>-generate.py" and run
-// `$ python <FILE_NAME>-generate.py > FILE_NAME.hpp`.
+/*************************************************************/
+/* WARNING: FILE AUTOMATICALLY GENERATED, DO NOT MODIFY IT! */
+/* Instead modify the generation script "<FILE>-generate.py" */
+/*************************************************************/
// Used: #define BOOST_PP_LIMIT_TUPLE 64
+#ifndef BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_HPP_
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_HPP_
+
#include <boost/preprocessor/limits.hpp>
#if BOOST_PP_LIMIT_TUPLE != 64
-#error "Code generation used incorrect BOOST_PP_LIMIT_TUPLE"
+# error "Code generation used incorrect BOOST_PP_LIMIT_TUPLE"
#endif
#include <boost/preprocessor/cat.hpp>
@@ -24,4172 +19,4172 @@
// PUBLIC //
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N(n, array) \
- BOOST_PP_CAT(CONTRACT_DETAIL_PP_ARRAY_FIRST_N_, \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N(n, array) \
+ BOOST_PP_CAT(BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_, \
BOOST_PP_CAT(BOOST_PP_ARRAY_SIZE(array), BOOST_PP_CAT(_, n))) \
BOOST_PP_ARRAY_DATA(array)
// DATA //
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_1_1(_1) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_1_1(_1) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_2_1(_1, _2) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_2_1(_1, _2) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_2_2(_1, _2) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_2_2(_1, _2) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_1(_1, _2, _3) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_1(_1, _2, _3) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_2(_1, _2, _3) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_2(_1, _2, _3) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_3(_1, _2, _3) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_3_3(_1, _2, _3) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_1(_1, _2, _3, _4) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_1(_1, _2, _3, _4) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_2(_1, _2, _3, _4) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_2(_1, _2, _3, _4) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_3(_1, _2, _3, _4) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_3(_1, _2, _3, _4) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_4(_1, _2, _3, _4) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_4_4(_1, _2, _3, _4) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_1(_1, _2, _3, _4, _5) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_1(_1, _2, _3, _4, _5) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_2(_1, _2, _3, _4, _5) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_2(_1, _2, _3, _4, _5) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_3(_1, _2, _3, _4, _5) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_3(_1, _2, _3, _4, _5) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_4(_1, _2, _3, _4, _5) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_4(_1, _2, _3, _4, _5) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_5(_1, _2, _3, _4, _5) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_5_5(_1, _2, _3, _4, _5) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_1(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_1(_1, _2, _3, _4, _5, _6) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_2(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_2(_1, _2, _3, _4, _5, _6) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_3(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_3(_1, _2, _3, _4, _5, _6) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_4(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_4(_1, _2, _3, _4, _5, _6) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_5(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_5(_1, _2, _3, _4, _5, _6) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_6(_1, _2, _3, _4, _5, _6) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_6_6(_1, _2, _3, _4, _5, _6) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_1(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_1(_1, _2, _3, _4, _5, _6, _7) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_2(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_2(_1, _2, _3, _4, _5, _6, _7) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_3(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_3(_1, _2, _3, _4, _5, _6, _7) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_4(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_4(_1, _2, _3, _4, _5, _6, _7) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_5(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_5(_1, _2, _3, _4, _5, _6, _7) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_6(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_6(_1, _2, _3, _4, _5, _6, _7) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_7(_1, _2, _3, _4, _5, _6, _7) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_7_7(_1, _2, _3, _4, _5, _6, _7) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_1(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_1(_1, _2, _3, _4, _5, _6, _7, _8) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_2(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_2(_1, _2, _3, _4, _5, _6, _7, _8) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_3(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_3(_1, _2, _3, _4, _5, _6, _7, _8) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_4(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_4(_1, _2, _3, _4, _5, _6, _7, _8) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_5(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_5(_1, _2, _3, _4, _5, _6, _7, _8) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_6(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_6(_1, _2, _3, _4, _5, _6, _7, _8) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_7(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_7(_1, _2, _3, _4, _5, _6, _7, _8) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_8(_1, _2, _3, _4, _5, _6, _7, _8) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_8_8(_1, _2, _3, _4, _5, _6, _7, _8) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_1(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_1(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_2(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_2(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_3(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_3(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_4(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_4(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_5(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_5(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_6(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_6(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_7(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_7(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_8(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_8(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_9(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_9_9(_1, _2, _3, _4, _5, _6, _7, _8, _9) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_10_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_11_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_12_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_13_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_14_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_15_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_16_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_17_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_18_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_19_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_20_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_21_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_22_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_23_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_24_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_25_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_26_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_27_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_28_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_29_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_30_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_31_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_32_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_33_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_34_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_35_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_36_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_37_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_38_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_39_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_40_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_41_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_42_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_43_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_44_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_45_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_46_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_47_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_48_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_49_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_50_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_51_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_52_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_53_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_54_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_55_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_56_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_57_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_58_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_59_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_60_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60) \
(60, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(60, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_61_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61) \
(61, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(60, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(61, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_62_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62) \
(62, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(60, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(61, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(62, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_63(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_63_63(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63) \
(63, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_1(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(1, (_1))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_2(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(2, (_1, _2))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_3(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(3, (_1, _2, _3))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_4(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(4, (_1, _2, _3, _4))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_5(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(5, (_1, _2, _3, _4, _5))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_6(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(6, (_1, _2, _3, _4, _5, _6))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(7, (_1, _2, _3, _4, _5, _6, _7))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_8(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(8, (_1, _2, _3, _4, _5, _6, _7, _8))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(9, (_1, _2, _3, _4, _5, _6, _7, _8, _9))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_10(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(10, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_11(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(11, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_12(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(12, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_13(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(13, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_14(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(14, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_15(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(15, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_16(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(16, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_17(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(17, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_18(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(18, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_19(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(19, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_20(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(20, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_21(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(21, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_22(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(22, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_23(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(23, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_24(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(24, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_25(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(25, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_26(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(26, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_27(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(27, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_28(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(28, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_29(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(29, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_30(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(30, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_31(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(31, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_32(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(32, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_33(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(33, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_34(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(34, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_35(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(35, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_36(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(36, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_37(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(37, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_38(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(38, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_39(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(39, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_40(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(40, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_41(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(41, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_42(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(42, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_43(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(43, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_44(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(44, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_45(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(45, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_46(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(46, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_47(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(47, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_48(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(48, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_49(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(49, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_50(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(50, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_51(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(51, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_52(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(52, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_53(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(53, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_54(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(54, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_55(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(55, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_56(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(56, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_57(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(57, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_58(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(58, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_59(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(59, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_60(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(60, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_61(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(61, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_62(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(62, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_63(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_63(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(63, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63))
-#define CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_64(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
+#define BOOST_CONTRACT_DETAIL_PP_ARRAY_FIRST_N_64_64(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64) \
(64, (_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64))
#endif // #include guard
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk