Boost logo

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