code:
/* Copyright 2003-2013 Joaquin M Lopez Munoz.
 * Distributed under the Boost Software License, Version 1.0.
 * (See accompanying file LICENSE_1_0.txt or copy at
 * http://www.boost.org/LICENSE_1_0.txt)
 *
 * See http://www.boost.org/libs/multi_index for library home page.
 */

#ifndef BOOST_MULTI_INDEX_DETAIL_VARTEMPL_SUPPORT_HPP
#define BOOST_MULTI_INDEX_DETAIL_VARTEMPL_SUPPORT_HPP

#if defined(_MSC_VER)
#pragma once
#endif

/* Utilities for emulation of variadic template functions. Variadic packs are
 * replaced by lists of BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS parameters:
 *
 *   - typename... Args            --> BOOST_MULTI_INDEX_TEMPLATE_PARAM_PACK
 *   - Args&&... args              --> BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK
 *   - std::forward<Args>(args)... --> BOOST_MULTI_INDEX_FORWARD_PARAM_PACK
 *
 * Forwarding emulated with Boost.Move. A template functions foo_imp
 * defined in such way accepts *exactly* BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS
 * arguments: variable number of arguments is emulated by providing a set of
 * overloads foo forwarding to foo_impl with
 *
 *   BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL
 *   BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG (initial extra arg)
 *
 * which fill the extra args with boost::multi_index::detail::noarg's.
 * boost::multi_index::detail::vartempl_placement_new works the opposite
 * way: it acceps a full a pointer x to Value and a
 * BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK and forwards to
 * new(x) Value(args) where args is the argument pack after discarding
 * noarg's.
 *
 * Emulation decays to the real thing when the compiler supports variadic
 * templates and move semantics natively.
 */

#include <boost/config.hpp>

#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES)||\
    defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)

#include <boost/move/core.hpp>
#include <boost/move/utility.hpp>
#include <boost/preprocessor/arithmetic/add.hpp>
#include <boost/preprocessor/arithmetic/sub.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/control/if.hpp>
#include <boost/preprocessor/facilities/empty.hpp>
#include <boost/preprocessor/facilities/intercept.hpp>
#include <boost/preprocessor/logical/and.hpp>
#include <boost/preprocessor/punctuation/comma.hpp>
#include <boost/preprocessor/punctuation/comma_if.hpp>
#include <boost/preprocessor/repetition/enum.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#include <boost/preprocessor/seq/elem.hpp>

#if !defined(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS)
#define BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS 5
#endif

#define BOOST_MULTI_INDEX_TEMPLATE_PARAM_PACK                        \
BOOST_PP_ENUM_PARAMS(                                                \
  BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,typename T)

#define BOOST_MULTI_INDEX_VARTEMPL_ARG(z,n,_)                        \
BOOST_FWD_REF(BOOST_PP_CAT(T,n)) BOOST_PP_CAT(t,n)

#define BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK                        \
BOOST_PP_ENUM(                                                       \
  BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,                             \
  BOOST_MULTI_INDEX_VARTEMPL_ARG,~)

#define BOOST_MULTI_INDEX_VARTEMPL_FORWARD_ARG(z,n,_)                \
boost::forward<BOOST_PP_CAT(T,n)>(BOOST_PP_CAT(t,n))

#define BOOST_MULTI_INDEX_FORWARD_PARAM_PACK                         \
BOOST_PP_ENUM(                                                       \
  BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,                             \
  BOOST_MULTI_INDEX_VARTEMPL_FORWARD_ARG,~)

namespace boost{namespace multi_index{namespace detail{
struct noarg{};
}}}

/* call vartempl function without args */

#define BOOST_MULTI_INDEX_NULL_PARAM_PACK                            \
BOOST_PP_ENUM_PARAMS(                                                \
  BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,                             \
  boost::multi_index::detail::noarg() BOOST_PP_INTERCEPT)

#define BOOST_MULTI_INDEX_TEMPLATE_N(n)                              \
template<BOOST_PP_ENUM_PARAMS(n,typename T)>

#define BOOST_MULTI_INDEX_TEMPLATE_0(n)

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_AUX(z,n,data)        \
BOOST_PP_IF(n,                                                       \
  BOOST_MULTI_INDEX_TEMPLATE_N,                                      \
  BOOST_MULTI_INDEX_TEMPLATE_0)(n)                                   \
BOOST_PP_SEQ_ELEM(0,data) /* ret */                                  \
BOOST_PP_SEQ_ELEM(1,data) /* name_from */ (                          \
  BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_ARG,~))                 \
{                                                                    \
  return BOOST_PP_SEQ_ELEM(2,data) /* name_to */ (                   \
    BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_FORWARD_ARG,~)        \
    BOOST_PP_COMMA_IF(                                               \
      BOOST_PP_AND(                                                  \
        n,BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n)))    \
    BOOST_PP_ENUM_PARAMS(                                            \
      BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n),         \
      boost::multi_index::detail::noarg() BOOST_PP_INTERCEPT)        \
  );                                                                 \
}

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL(                     \
  ret,name_from,name_to)                                             \
BOOST_PP_REPEAT_FROM_TO(                                             \
  0,BOOST_PP_ADD(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,1),           \
  BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_AUX,                       \
  (ret)(name_from)(name_to))

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG_AUX(       \
  z,n,data)                                                          \
BOOST_PP_IF(n,                                                       \
  BOOST_MULTI_INDEX_TEMPLATE_N,                                      \
  BOOST_MULTI_INDEX_TEMPLATE_0)(n)                                   \
BOOST_PP_SEQ_ELEM(0,data) /* ret */                                  \
BOOST_PP_SEQ_ELEM(1,data) /* name_from */ (                          \
  BOOST_PP_SEQ_ELEM(3,data) BOOST_PP_SEQ_ELEM(4,data) /* extra arg */\
  BOOST_PP_COMMA_IF(n)                                               \
  BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_ARG,~))                 \
{                                                                    \
  return BOOST_PP_SEQ_ELEM(2,data) /* name_to */ (                   \
    BOOST_PP_SEQ_ELEM(4,data) /* extra_arg_name */                   \
    BOOST_PP_COMMA_IF(n)                                             \
    BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_FORWARD_ARG,~)        \
    BOOST_PP_COMMA_IF(                                               \
      BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n))         \
    BOOST_PP_ENUM_PARAMS(                                            \
      BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n),         \
      boost::multi_index::detail::noarg() BOOST_PP_INTERCEPT)        \
  );                                                                 \
}

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG(           \
  ret,name_from,name_to,extra_arg_type,extra_arg_name)               \
BOOST_PP_REPEAT_FROM_TO(                                             \
  0,BOOST_PP_ADD(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,1),           \
  BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG_AUX,             \
  (ret)(name_from)(name_to)(extra_arg_type)(extra_arg_name))

namespace boost{

namespace multi_index{

namespace detail{

#define BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW_AUX(z,n,name)    \
template<                                                            \
  typename Value                                                     \
  BOOST_PP_COMMA_IF(n)                                               \
  BOOST_PP_ENUM_PARAMS(n,typename T)                                 \
>                                                                    \
Value* name(                                                         \
  Value* x                                                           \
  BOOST_PP_COMMA_IF(n)                                               \
  BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_ARG,~)                  \
  BOOST_PP_COMMA_IF(                                                 \
    BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n))           \
  BOOST_PP_ENUM_PARAMS(                                              \
    BOOST_PP_SUB(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,n),           \
    BOOST_FWD_REF(noarg) BOOST_PP_INTERCEPT))                        \
{                                                                    \
  return new(x) Value(                                               \
    BOOST_PP_ENUM(n,BOOST_MULTI_INDEX_VARTEMPL_FORWARD_ARG,~));      \
}

#define BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW(name)            \
BOOST_PP_REPEAT_FROM_TO(                                             \
  0,BOOST_PP_ADD(BOOST_MULTI_INDEX_LIMIT_VARTEMPL_ARGS,1),           \
  BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW_AUX,                   \
  name)

BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW(vartempl_placement_new)

#undef BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW_AUX
#undef BOOST_MULTI_INDEX_VARTEMPL_TO_PLACEMENT_NEW

} /* namespace multi_index::detail */

} /* namespace multi_index */

} /* namespace boost */

#else

/* native variadic templates support */

#include <utility>

#define BOOST_MULTI_INDEX_TEMPLATE_PARAM_PACK typename... Args
#define BOOST_MULTI_INDEX_FUNCTION_PARAM_PACK Args&&... args
#define BOOST_MULTI_INDEX_FORWARD_PARAM_PACK  std::forward<Args>(args)...
#define BOOST_MULTI_INDEX_NULL_PARAM_PACK

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL(                     \
  ret,name_from,name_to)                                             \
template<typename... Args> ret name_from(Args&&... args)             \
{                                                                    \
  return name_to(std::forward<Args>(args)...);                       \
}

#define BOOST_MULTI_INDEX_OVERLOADS_TO_VARTEMPL_EXTRA_ARG(           \
  ret,name_from,name_to,extra_arg_type,extra_arg_name)               \
template<typename... Args> ret name_from(                            \
  extra_arg_type extra_arg_name,Args&&... args)                      \
{                                                                    \
  return name_to(extra_arg_name,std::forward<Args>(args)...);        \
}

namespace boost{

namespace multi_index{

namespace detail{

template<typename Value,typename... Args>
Value* vartempl_placement_new(Value*x,Args&&... args)
{
  return new(x) Value(std::forward<Args>(args)...);
}

} /* namespace multi_index::detail */

} /* namespace multi_index */

} /* namespace boost */

#endif
#endif


code:
#if !defined(BOOST_PROTO_DONT_USE_PREPROCESSED_FILES)

    #include <boost/proto/transform/detail/preprocessed/construct_funop.hpp>

#elif !defined(BOOST_PP_IS_ITERATING)

    #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
        #pragma wave option(preserve: 2, line: 0, output: "preprocessed/construct_funop.hpp")
    #endif

    ///////////////////////////////////////////////////////////////////////////////
    /// \file construct_funop.hpp
    /// Overloads of construct_\<\>::operator().
    //
    //  Copyright 2008 Eric Niebler. Distributed under the Boost
    //  Software License, Version 1.0. (See accompanying file
    //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
        #pragma wave option(preserve: 1)
    #endif

    #define BOOST_PP_ITERATION_PARAMS_1                                                         \
        (3, (1, BOOST_PROTO_MAX_ARITY, <boost/proto/transform/detail/construct_funop.hpp>))
    #include BOOST_PP_ITERATE()

    #if defined(__WAVE__) && defined(BOOST_PROTO_CREATE_PREPROCESSED_FILES)
        #pragma wave option(output: null)
    #endif

#else

    #define N BOOST_PP_ITERATION()

    template<BOOST_PP_ENUM_PARAMS(N, typename A)>
    BOOST_FORCEINLINE
    Type operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, &a)) const
    {
        return Type(BOOST_PP_ENUM_PARAMS(N, a));
    }

    #undef N

#endif

license: mit


code:
/*
Copyright Rene Rivera 2008-2015
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/

#ifndef BOOST_PREDEF_OS_HPUX_H
#define BOOST_PREDEF_OS_HPUX_H

#include <boost/predef/version_number.h>
#include <boost/predef/make.h>

/*`
[heading `BOOST_OS_HPUX`]

[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system.

[table
    [[__predef_symbol__] [__predef_version__]]

    [[`hpux`] [__predef_detection__]]
    [[`_hpux`] [__predef_detection__]]
    [[`__hpux`] [__predef_detection__]]
    ]
 */

#define BOOST_OS_HPUX BOOST_VERSION_NUMBER_NOT_AVAILABLE

#if !defined(BOOST_PREDEF_DETAIL_OS_DETECTED) && ( \
    defined(hpux) || defined(_hpux) || defined(__hpux) \
    )
#   undef BOOST_OS_HPUX
#   define BOOST_OS_HPUX BOOST_VERSION_NUMBER_AVAILABLE
#endif

#if BOOST_OS_HPUX
#   define BOOST_OS_HPUX_AVAILABLE
#   include <boost/predef/detail/os_detected.h>
#endif

#define BOOST_OS_HPUX_NAME "HP-UX"

#endif

#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HPUX,BOOST_OS_HPUX_NAME)


code:
///////////////////////////////////////////////////////////////////////////////
/// \file expr.hpp
/// Contains definition of expr\<\> class template.
//
//  Copyright 2008 Eric Niebler. Distributed under the Boost
//  Software License, Version 1.0. (See accompanying file
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

#ifndef BOOST_PROTO_EXPR_HPP_EAN_04_01_2005
#define BOOST_PROTO_EXPR_HPP_EAN_04_01_2005

#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/arithmetic/dec.hpp>
#include <boost/preprocessor/selection/max.hpp>
#include <boost/preprocessor/iteration/iterate.hpp>
#include <boost/preprocessor/facilities/intercept.hpp>
#include <boost/preprocessor/repetition/repeat.hpp>
#include <boost/preprocessor/repetition/repeat_from_to.hpp>
#include <boost/preprocessor/repetition/enum_trailing.hpp>
#include <boost/preprocessor/repetition/enum_params.hpp>
#include <boost/preprocessor/repetition/enum_binary_params.hpp>
#include <boost/preprocessor/repetition/enum_trailing_params.hpp>
#include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>
#include <boost/utility/addressof.hpp>
#include <boost/proto/proto_fwd.hpp>
#include <boost/proto/args.hpp>
#include <boost/proto/traits.hpp>

#if defined(_MSC_VER)
# pragma warning(push)
# pragma warning(disable : 4510) // default constructor could not be generated
# pragma warning(disable : 4512) // assignment operator could not be generated
# pragma warning(disable : 4610) // user defined constructor required
# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
#endif

namespace boost { namespace proto
{

    namespace detail
    {
        struct not_a_valid_type
        {
        private:
            not_a_valid_type()
            {}
        };

        template<typename Tag, typename Arg>
        struct address_of_hack
        {
            typedef not_a_valid_type type;
        };

        template<typename Expr>
        struct address_of_hack<proto::tag::address_of, Expr &>
        {
            typedef Expr *type;
        };

        template<typename T, typename Expr, typename Arg0>
        BOOST_FORCEINLINE
        Expr make_terminal(T &t, Expr *, proto::term<Arg0> *)
        {
            Expr that = {t};
            return that;
        }

        template<typename T, typename Expr, typename Arg0, std::size_t N>
        BOOST_FORCEINLINE
        Expr make_terminal(T (&t)[N], Expr *, proto::term<Arg0[N]> *)
        {
            Expr that;
            for(std::size_t i = 0; i < N; ++i)
            {
                that.child0[i] = t[i];
            }
            return that;
        }

        template<typename T, typename Expr, typename Arg0, std::size_t N>
        BOOST_FORCEINLINE
        Expr make_terminal(T const(&t)[N], Expr *, proto::term<Arg0[N]> *)
        {
            Expr that;
            for(std::size_t i = 0; i < N; ++i)
            {
                that.child0[i] = t[i];
            }
            return that;
        }

        // Work-around for:
        // https://connect.microsoft.com/VisualStudio/feedback/details/765449/codegen-stack-corruption-using-runtime-checks-when-aggregate-initializing-struct
    #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1700))
        template<typename T, typename Expr, typename C, typename U>
        BOOST_FORCEINLINE
        Expr make_terminal(T &t, Expr *, proto::term<U C::*> *)
        {
            Expr that;
            that.child0 = t;
            return that;
        }
    #endif

        template<typename T, typename U>
        struct same_cv
        {
            typedef U type;
        };

        template<typename T, typename U>
        struct same_cv<T const, U>
        {
            typedef U const type;
        };
    }

    namespace result_of
    {
        /// \brief A helper metafunction for computing the
        /// return type of \c proto::expr\<\>::operator().
        template<typename Sig, typename This, typename Domain>
        struct funop;

        #include <boost/proto/detail/funop.hpp>
    }

    namespace exprns_
    {
        // This is where the basic_expr specializations are
        // actually defined:
        #include <boost/proto/detail/basic_expr.hpp>

        // This is where the expr specialization are
        // actually defined:
        #include <boost/proto/detail/expr.hpp>
    }

    /// \brief Lets you inherit the interface of an expression
    /// while hiding from Proto the fact that the type is a Proto
    /// expression.
    template<typename Expr>
    struct unexpr
      : Expr
    {
        BOOST_PROTO_UNEXPR()

        BOOST_FORCEINLINE
        explicit unexpr(Expr const &e)
          : Expr(e)
        {}

        using Expr::operator =;
    };

}}

#if defined(_MSC_VER)
# pragma warning(pop)
#endif

#endif // BOOST_PROTO_EXPR_HPP_EAN_04_01_2005


code:
# /* **************************************************************************
#  *                                                                          *
#  *     (C) Copyright Paul Mensonides 2002.
#  *     Distributed under the Boost Software License, Version 1.0. (See
#  *     accompanying file LICENSE_1_0.txt or copy at
#  *     http://www.boost.org/LICENSE_1_0.txt)
#  *                                                                          *
#  ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# if defined(BOOST_PP_ITERATION_LIMITS)
#    if !defined(BOOST_PP_FILENAME_4)
#        error BOOST_PP_ERROR:  depth #4 filename is not defined
#    endif
#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
#    define BOOST_PP_ITERATION_FLAGS_4() 0
#    undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_4)
#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_4)
#    include <boost/preprocessor/iteration/detail/bounds/lower4.hpp>
#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_4)
#    include <boost/preprocessor/iteration/detail/bounds/upper4.hpp>
#    define BOOST_PP_FILENAME_4 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_4)
#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_4) >= 4
#        define BOOST_PP_ITERATION_FLAGS_4() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_4)
#    else
#        define BOOST_PP_ITERATION_FLAGS_4() 0
#    endif
# else
#    error BOOST_PP_ERROR:  depth #4 iteration boundaries or filename not defined
# endif
#
# undef BOOST_PP_ITERATION_DEPTH
# define BOOST_PP_ITERATION_DEPTH() 4
#
# if (BOOST_PP_ITERATION_START_4) > (BOOST_PP_ITERATION_FINISH_4)
#    include <boost/preprocessor/iteration/detail/iter/reverse4.hpp>
# else
#    if BOOST_PP_ITERATION_START_4 <= 0 && BOOST_PP_ITERATION_FINISH_4 >= 0
#        define BOOST_PP_ITERATION_4 0
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 1 && BOOST_PP_ITERATION_FINISH_4 >= 1
#        define BOOST_PP_ITERATION_4 1
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 2 && BOOST_PP_ITERATION_FINISH_4 >= 2
#        define BOOST_PP_ITERATION_4 2
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 3 && BOOST_PP_ITERATION_FINISH_4 >= 3
#        define BOOST_PP_ITERATION_4 3
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 4 && BOOST_PP_ITERATION_FINISH_4 >= 4
#        define BOOST_PP_ITERATION_4 4
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 5 && BOOST_PP_ITERATION_FINISH_4 >= 5
#        define BOOST_PP_ITERATION_4 5
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 6 && BOOST_PP_ITERATION_FINISH_4 >= 6
#        define BOOST_PP_ITERATION_4 6
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 7 && BOOST_PP_ITERATION_FINISH_4 >= 7
#        define BOOST_PP_ITERATION_4 7
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 8 && BOOST_PP_ITERATION_FINISH_4 >= 8
#        define BOOST_PP_ITERATION_4 8
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 9 && BOOST_PP_ITERATION_FINISH_4 >= 9
#        define BOOST_PP_ITERATION_4 9
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 10 && BOOST_PP_ITERATION_FINISH_4 >= 10
#        define BOOST_PP_ITERATION_4 10
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 11 && BOOST_PP_ITERATION_FINISH_4 >= 11
#        define BOOST_PP_ITERATION_4 11
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 12 && BOOST_PP_ITERATION_FINISH_4 >= 12
#        define BOOST_PP_ITERATION_4 12
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 13 && BOOST_PP_ITERATION_FINISH_4 >= 13
#        define BOOST_PP_ITERATION_4 13
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 14 && BOOST_PP_ITERATION_FINISH_4 >= 14
#        define BOOST_PP_ITERATION_4 14
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 15 && BOOST_PP_ITERATION_FINISH_4 >= 15
#        define BOOST_PP_ITERATION_4 15
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 16 && BOOST_PP_ITERATION_FINISH_4 >= 16
#        define BOOST_PP_ITERATION_4 16
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 17 && BOOST_PP_ITERATION_FINISH_4 >= 17
#        define BOOST_PP_ITERATION_4 17
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 18 && BOOST_PP_ITERATION_FINISH_4 >= 18
#        define BOOST_PP_ITERATION_4 18
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 19 && BOOST_PP_ITERATION_FINISH_4 >= 19
#        define BOOST_PP_ITERATION_4 19
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 20 && BOOST_PP_ITERATION_FINISH_4 >= 20
#        define BOOST_PP_ITERATION_4 20
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 21 && BOOST_PP_ITERATION_FINISH_4 >= 21
#        define BOOST_PP_ITERATION_4 21
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 22 && BOOST_PP_ITERATION_FINISH_4 >= 22
#        define BOOST_PP_ITERATION_4 22
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 23 && BOOST_PP_ITERATION_FINISH_4 >= 23
#        define BOOST_PP_ITERATION_4 23
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 24 && BOOST_PP_ITERATION_FINISH_4 >= 24
#        define BOOST_PP_ITERATION_4 24
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 25 && BOOST_PP_ITERATION_FINISH_4 >= 25
#        define BOOST_PP_ITERATION_4 25
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 26 && BOOST_PP_ITERATION_FINISH_4 >= 26
#        define BOOST_PP_ITERATION_4 26
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 27 && BOOST_PP_ITERATION_FINISH_4 >= 27
#        define BOOST_PP_ITERATION_4 27
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 28 && BOOST_PP_ITERATION_FINISH_4 >= 28
#        define BOOST_PP_ITERATION_4 28
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 29 && BOOST_PP_ITERATION_FINISH_4 >= 29
#        define BOOST_PP_ITERATION_4 29
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 30 && BOOST_PP_ITERATION_FINISH_4 >= 30
#        define BOOST_PP_ITERATION_4 30
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 31 && BOOST_PP_ITERATION_FINISH_4 >= 31
#        define BOOST_PP_ITERATION_4 31
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 32 && BOOST_PP_ITERATION_FINISH_4 >= 32
#        define BOOST_PP_ITERATION_4 32
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 33 && BOOST_PP_ITERATION_FINISH_4 >= 33
#        define BOOST_PP_ITERATION_4 33
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 34 && BOOST_PP_ITERATION_FINISH_4 >= 34
#        define BOOST_PP_ITERATION_4 34
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 35 && BOOST_PP_ITERATION_FINISH_4 >= 35
#        define BOOST_PP_ITERATION_4 35
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 36 && BOOST_PP_ITERATION_FINISH_4 >= 36
#        define BOOST_PP_ITERATION_4 36
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 37 && BOOST_PP_ITERATION_FINISH_4 >= 37
#        define BOOST_PP_ITERATION_4 37
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 38 && BOOST_PP_ITERATION_FINISH_4 >= 38
#        define BOOST_PP_ITERATION_4 38
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 39 && BOOST_PP_ITERATION_FINISH_4 >= 39
#        define BOOST_PP_ITERATION_4 39
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 40 && BOOST_PP_ITERATION_FINISH_4 >= 40
#        define BOOST_PP_ITERATION_4 40
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 41 && BOOST_PP_ITERATION_FINISH_4 >= 41
#        define BOOST_PP_ITERATION_4 41
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 42 && BOOST_PP_ITERATION_FINISH_4 >= 42
#        define BOOST_PP_ITERATION_4 42
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 43 && BOOST_PP_ITERATION_FINISH_4 >= 43
#        define BOOST_PP_ITERATION_4 43
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 44 && BOOST_PP_ITERATION_FINISH_4 >= 44
#        define BOOST_PP_ITERATION_4 44
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 45 && BOOST_PP_ITERATION_FINISH_4 >= 45
#        define BOOST_PP_ITERATION_4 45
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 46 && BOOST_PP_ITERATION_FINISH_4 >= 46
#        define BOOST_PP_ITERATION_4 46
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 47 && BOOST_PP_ITERATION_FINISH_4 >= 47
#        define BOOST_PP_ITERATION_4 47
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 48 && BOOST_PP_ITERATION_FINISH_4 >= 48
#        define BOOST_PP_ITERATION_4 48
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 49 && BOOST_PP_ITERATION_FINISH_4 >= 49
#        define BOOST_PP_ITERATION_4 49
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 50 && BOOST_PP_ITERATION_FINISH_4 >= 50
#        define BOOST_PP_ITERATION_4 50
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 51 && BOOST_PP_ITERATION_FINISH_4 >= 51
#        define BOOST_PP_ITERATION_4 51
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 52 && BOOST_PP_ITERATION_FINISH_4 >= 52
#        define BOOST_PP_ITERATION_4 52
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 53 && BOOST_PP_ITERATION_FINISH_4 >= 53
#        define BOOST_PP_ITERATION_4 53
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 54 && BOOST_PP_ITERATION_FINISH_4 >= 54
#        define BOOST_PP_ITERATION_4 54
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 55 && BOOST_PP_ITERATION_FINISH_4 >= 55
#        define BOOST_PP_ITERATION_4 55
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 56 && BOOST_PP_ITERATION_FINISH_4 >= 56
#        define BOOST_PP_ITERATION_4 56
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 57 && BOOST_PP_ITERATION_FINISH_4 >= 57
#        define BOOST_PP_ITERATION_4 57
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 58 && BOOST_PP_ITERATION_FINISH_4 >= 58
#        define BOOST_PP_ITERATION_4 58
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 59 && BOOST_PP_ITERATION_FINISH_4 >= 59
#        define BOOST_PP_ITERATION_4 59
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 60 && BOOST_PP_ITERATION_FINISH_4 >= 60
#        define BOOST_PP_ITERATION_4 60
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 61 && BOOST_PP_ITERATION_FINISH_4 >= 61
#        define BOOST_PP_ITERATION_4 61
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 62 && BOOST_PP_ITERATION_FINISH_4 >= 62
#        define BOOST_PP_ITERATION_4 62
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 63 && BOOST_PP_ITERATION_FINISH_4 >= 63
#        define BOOST_PP_ITERATION_4 63
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 64 && BOOST_PP_ITERATION_FINISH_4 >= 64
#        define BOOST_PP_ITERATION_4 64
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 65 && BOOST_PP_ITERATION_FINISH_4 >= 65
#        define BOOST_PP_ITERATION_4 65
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 66 && BOOST_PP_ITERATION_FINISH_4 >= 66
#        define BOOST_PP_ITERATION_4 66
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 67 && BOOST_PP_ITERATION_FINISH_4 >= 67
#        define BOOST_PP_ITERATION_4 67
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 68 && BOOST_PP_ITERATION_FINISH_4 >= 68
#        define BOOST_PP_ITERATION_4 68
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 69 && BOOST_PP_ITERATION_FINISH_4 >= 69
#        define BOOST_PP_ITERATION_4 69
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 70 && BOOST_PP_ITERATION_FINISH_4 >= 70
#        define BOOST_PP_ITERATION_4 70
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 71 && BOOST_PP_ITERATION_FINISH_4 >= 71
#        define BOOST_PP_ITERATION_4 71
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 72 && BOOST_PP_ITERATION_FINISH_4 >= 72
#        define BOOST_PP_ITERATION_4 72
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 73 && BOOST_PP_ITERATION_FINISH_4 >= 73
#        define BOOST_PP_ITERATION_4 73
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 74 && BOOST_PP_ITERATION_FINISH_4 >= 74
#        define BOOST_PP_ITERATION_4 74
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 75 && BOOST_PP_ITERATION_FINISH_4 >= 75
#        define BOOST_PP_ITERATION_4 75
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 76 && BOOST_PP_ITERATION_FINISH_4 >= 76
#        define BOOST_PP_ITERATION_4 76
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 77 && BOOST_PP_ITERATION_FINISH_4 >= 77
#        define BOOST_PP_ITERATION_4 77
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 78 && BOOST_PP_ITERATION_FINISH_4 >= 78
#        define BOOST_PP_ITERATION_4 78
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 79 && BOOST_PP_ITERATION_FINISH_4 >= 79
#        define BOOST_PP_ITERATION_4 79
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 80 && BOOST_PP_ITERATION_FINISH_4 >= 80
#        define BOOST_PP_ITERATION_4 80
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 81 && BOOST_PP_ITERATION_FINISH_4 >= 81
#        define BOOST_PP_ITERATION_4 81
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 82 && BOOST_PP_ITERATION_FINISH_4 >= 82
#        define BOOST_PP_ITERATION_4 82
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 83 && BOOST_PP_ITERATION_FINISH_4 >= 83
#        define BOOST_PP_ITERATION_4 83
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 84 && BOOST_PP_ITERATION_FINISH_4 >= 84
#        define BOOST_PP_ITERATION_4 84
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 85 && BOOST_PP_ITERATION_FINISH_4 >= 85
#        define BOOST_PP_ITERATION_4 85
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 86 && BOOST_PP_ITERATION_FINISH_4 >= 86
#        define BOOST_PP_ITERATION_4 86
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 87 && BOOST_PP_ITERATION_FINISH_4 >= 87
#        define BOOST_PP_ITERATION_4 87
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 88 && BOOST_PP_ITERATION_FINISH_4 >= 88
#        define BOOST_PP_ITERATION_4 88
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 89 && BOOST_PP_ITERATION_FINISH_4 >= 89
#        define BOOST_PP_ITERATION_4 89
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 90 && BOOST_PP_ITERATION_FINISH_4 >= 90
#        define BOOST_PP_ITERATION_4 90
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 91 && BOOST_PP_ITERATION_FINISH_4 >= 91
#        define BOOST_PP_ITERATION_4 91
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 92 && BOOST_PP_ITERATION_FINISH_4 >= 92
#        define BOOST_PP_ITERATION_4 92
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 93 && BOOST_PP_ITERATION_FINISH_4 >= 93
#        define BOOST_PP_ITERATION_4 93
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 94 && BOOST_PP_ITERATION_FINISH_4 >= 94
#        define BOOST_PP_ITERATION_4 94
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 95 && BOOST_PP_ITERATION_FINISH_4 >= 95
#        define BOOST_PP_ITERATION_4 95
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 96 && BOOST_PP_ITERATION_FINISH_4 >= 96
#        define BOOST_PP_ITERATION_4 96
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 97 && BOOST_PP_ITERATION_FINISH_4 >= 97
#        define BOOST_PP_ITERATION_4 97
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 98 && BOOST_PP_ITERATION_FINISH_4 >= 98
#        define BOOST_PP_ITERATION_4 98
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 99 && BOOST_PP_ITERATION_FINISH_4 >= 99
#        define BOOST_PP_ITERATION_4 99
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 100 && BOOST_PP_ITERATION_FINISH_4 >= 100
#        define BOOST_PP_ITERATION_4 100
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 101 && BOOST_PP_ITERATION_FINISH_4 >= 101
#        define BOOST_PP_ITERATION_4 101
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 102 && BOOST_PP_ITERATION_FINISH_4 >= 102
#        define BOOST_PP_ITERATION_4 102
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 103 && BOOST_PP_ITERATION_FINISH_4 >= 103
#        define BOOST_PP_ITERATION_4 103
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 104 && BOOST_PP_ITERATION_FINISH_4 >= 104
#        define BOOST_PP_ITERATION_4 104
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 105 && BOOST_PP_ITERATION_FINISH_4 >= 105
#        define BOOST_PP_ITERATION_4 105
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 106 && BOOST_PP_ITERATION_FINISH_4 >= 106
#        define BOOST_PP_ITERATION_4 106
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 107 && BOOST_PP_ITERATION_FINISH_4 >= 107
#        define BOOST_PP_ITERATION_4 107
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 108 && BOOST_PP_ITERATION_FINISH_4 >= 108
#        define BOOST_PP_ITERATION_4 108
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 109 && BOOST_PP_ITERATION_FINISH_4 >= 109
#        define BOOST_PP_ITERATION_4 109
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 110 && BOOST_PP_ITERATION_FINISH_4 >= 110
#        define BOOST_PP_ITERATION_4 110
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 111 && BOOST_PP_ITERATION_FINISH_4 >= 111
#        define BOOST_PP_ITERATION_4 111
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 112 && BOOST_PP_ITERATION_FINISH_4 >= 112
#        define BOOST_PP_ITERATION_4 112
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 113 && BOOST_PP_ITERATION_FINISH_4 >= 113
#        define BOOST_PP_ITERATION_4 113
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 114 && BOOST_PP_ITERATION_FINISH_4 >= 114
#        define BOOST_PP_ITERATION_4 114
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 115 && BOOST_PP_ITERATION_FINISH_4 >= 115
#        define BOOST_PP_ITERATION_4 115
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 116 && BOOST_PP_ITERATION_FINISH_4 >= 116
#        define BOOST_PP_ITERATION_4 116
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 117 && BOOST_PP_ITERATION_FINISH_4 >= 117
#        define BOOST_PP_ITERATION_4 117
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 118 && BOOST_PP_ITERATION_FINISH_4 >= 118
#        define BOOST_PP_ITERATION_4 118
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 119 && BOOST_PP_ITERATION_FINISH_4 >= 119
#        define BOOST_PP_ITERATION_4 119
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 120 && BOOST_PP_ITERATION_FINISH_4 >= 120
#        define BOOST_PP_ITERATION_4 120
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 121 && BOOST_PP_ITERATION_FINISH_4 >= 121
#        define BOOST_PP_ITERATION_4 121
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 122 && BOOST_PP_ITERATION_FINISH_4 >= 122
#        define BOOST_PP_ITERATION_4 122
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 123 && BOOST_PP_ITERATION_FINISH_4 >= 123
#        define BOOST_PP_ITERATION_4 123
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 124 && BOOST_PP_ITERATION_FINISH_4 >= 124
#        define BOOST_PP_ITERATION_4 124
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 125 && BOOST_PP_ITERATION_FINISH_4 >= 125
#        define BOOST_PP_ITERATION_4 125
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 126 && BOOST_PP_ITERATION_FINISH_4 >= 126
#        define BOOST_PP_ITERATION_4 126
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 127 && BOOST_PP_ITERATION_FINISH_4 >= 127
#        define BOOST_PP_ITERATION_4 127
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 128 && BOOST_PP_ITERATION_FINISH_4 >= 128
#        define BOOST_PP_ITERATION_4 128
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 129 && BOOST_PP_ITERATION_FINISH_4 >= 129
#        define BOOST_PP_ITERATION_4 129
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 130 && BOOST_PP_ITERATION_FINISH_4 >= 130
#        define BOOST_PP_ITERATION_4 130
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 131 && BOOST_PP_ITERATION_FINISH_4 >= 131
#        define BOOST_PP_ITERATION_4 131
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 132 && BOOST_PP_ITERATION_FINISH_4 >= 132
#        define BOOST_PP_ITERATION_4 132
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 133 && BOOST_PP_ITERATION_FINISH_4 >= 133
#        define BOOST_PP_ITERATION_4 133
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 134 && BOOST_PP_ITERATION_FINISH_4 >= 134
#        define BOOST_PP_ITERATION_4 134
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 135 && BOOST_PP_ITERATION_FINISH_4 >= 135
#        define BOOST_PP_ITERATION_4 135
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 136 && BOOST_PP_ITERATION_FINISH_4 >= 136
#        define BOOST_PP_ITERATION_4 136
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 137 && BOOST_PP_ITERATION_FINISH_4 >= 137
#        define BOOST_PP_ITERATION_4 137
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 138 && BOOST_PP_ITERATION_FINISH_4 >= 138
#        define BOOST_PP_ITERATION_4 138
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 139 && BOOST_PP_ITERATION_FINISH_4 >= 139
#        define BOOST_PP_ITERATION_4 139
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 140 && BOOST_PP_ITERATION_FINISH_4 >= 140
#        define BOOST_PP_ITERATION_4 140
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 141 && BOOST_PP_ITERATION_FINISH_4 >= 141
#        define BOOST_PP_ITERATION_4 141
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 142 && BOOST_PP_ITERATION_FINISH_4 >= 142
#        define BOOST_PP_ITERATION_4 142
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 143 && BOOST_PP_ITERATION_FINISH_4 >= 143
#        define BOOST_PP_ITERATION_4 143
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 144 && BOOST_PP_ITERATION_FINISH_4 >= 144
#        define BOOST_PP_ITERATION_4 144
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 145 && BOOST_PP_ITERATION_FINISH_4 >= 145
#        define BOOST_PP_ITERATION_4 145
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 146 && BOOST_PP_ITERATION_FINISH_4 >= 146
#        define BOOST_PP_ITERATION_4 146
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 147 && BOOST_PP_ITERATION_FINISH_4 >= 147
#        define BOOST_PP_ITERATION_4 147
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 148 && BOOST_PP_ITERATION_FINISH_4 >= 148
#        define BOOST_PP_ITERATION_4 148
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 149 && BOOST_PP_ITERATION_FINISH_4 >= 149
#        define BOOST_PP_ITERATION_4 149
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 150 && BOOST_PP_ITERATION_FINISH_4 >= 150
#        define BOOST_PP_ITERATION_4 150
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 151 && BOOST_PP_ITERATION_FINISH_4 >= 151
#        define BOOST_PP_ITERATION_4 151
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 152 && BOOST_PP_ITERATION_FINISH_4 >= 152
#        define BOOST_PP_ITERATION_4 152
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 153 && BOOST_PP_ITERATION_FINISH_4 >= 153
#        define BOOST_PP_ITERATION_4 153
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 154 && BOOST_PP_ITERATION_FINISH_4 >= 154
#        define BOOST_PP_ITERATION_4 154
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 155 && BOOST_PP_ITERATION_FINISH_4 >= 155
#        define BOOST_PP_ITERATION_4 155
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 156 && BOOST_PP_ITERATION_FINISH_4 >= 156
#        define BOOST_PP_ITERATION_4 156
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 157 && BOOST_PP_ITERATION_FINISH_4 >= 157
#        define BOOST_PP_ITERATION_4 157
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 158 && BOOST_PP_ITERATION_FINISH_4 >= 158
#        define BOOST_PP_ITERATION_4 158
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 159 && BOOST_PP_ITERATION_FINISH_4 >= 159
#        define BOOST_PP_ITERATION_4 159
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 160 && BOOST_PP_ITERATION_FINISH_4 >= 160
#        define BOOST_PP_ITERATION_4 160
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 161 && BOOST_PP_ITERATION_FINISH_4 >= 161
#        define BOOST_PP_ITERATION_4 161
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 162 && BOOST_PP_ITERATION_FINISH_4 >= 162
#        define BOOST_PP_ITERATION_4 162
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 163 && BOOST_PP_ITERATION_FINISH_4 >= 163
#        define BOOST_PP_ITERATION_4 163
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 164 && BOOST_PP_ITERATION_FINISH_4 >= 164
#        define BOOST_PP_ITERATION_4 164
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 165 && BOOST_PP_ITERATION_FINISH_4 >= 165
#        define BOOST_PP_ITERATION_4 165
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 166 && BOOST_PP_ITERATION_FINISH_4 >= 166
#        define BOOST_PP_ITERATION_4 166
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 167 && BOOST_PP_ITERATION_FINISH_4 >= 167
#        define BOOST_PP_ITERATION_4 167
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 168 && BOOST_PP_ITERATION_FINISH_4 >= 168
#        define BOOST_PP_ITERATION_4 168
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 169 && BOOST_PP_ITERATION_FINISH_4 >= 169
#        define BOOST_PP_ITERATION_4 169
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 170 && BOOST_PP_ITERATION_FINISH_4 >= 170
#        define BOOST_PP_ITERATION_4 170
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 171 && BOOST_PP_ITERATION_FINISH_4 >= 171
#        define BOOST_PP_ITERATION_4 171
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 172 && BOOST_PP_ITERATION_FINISH_4 >= 172
#        define BOOST_PP_ITERATION_4 172
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 173 && BOOST_PP_ITERATION_FINISH_4 >= 173
#        define BOOST_PP_ITERATION_4 173
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 174 && BOOST_PP_ITERATION_FINISH_4 >= 174
#        define BOOST_PP_ITERATION_4 174
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 175 && BOOST_PP_ITERATION_FINISH_4 >= 175
#        define BOOST_PP_ITERATION_4 175
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 176 && BOOST_PP_ITERATION_FINISH_4 >= 176
#        define BOOST_PP_ITERATION_4 176
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 177 && BOOST_PP_ITERATION_FINISH_4 >= 177
#        define BOOST_PP_ITERATION_4 177
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 178 && BOOST_PP_ITERATION_FINISH_4 >= 178
#        define BOOST_PP_ITERATION_4 178
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 179 && BOOST_PP_ITERATION_FINISH_4 >= 179
#        define BOOST_PP_ITERATION_4 179
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 180 && BOOST_PP_ITERATION_FINISH_4 >= 180
#        define BOOST_PP_ITERATION_4 180
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 181 && BOOST_PP_ITERATION_FINISH_4 >= 181
#        define BOOST_PP_ITERATION_4 181
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 182 && BOOST_PP_ITERATION_FINISH_4 >= 182
#        define BOOST_PP_ITERATION_4 182
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 183 && BOOST_PP_ITERATION_FINISH_4 >= 183
#        define BOOST_PP_ITERATION_4 183
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 184 && BOOST_PP_ITERATION_FINISH_4 >= 184
#        define BOOST_PP_ITERATION_4 184
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 185 && BOOST_PP_ITERATION_FINISH_4 >= 185
#        define BOOST_PP_ITERATION_4 185
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 186 && BOOST_PP_ITERATION_FINISH_4 >= 186
#        define BOOST_PP_ITERATION_4 186
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 187 && BOOST_PP_ITERATION_FINISH_4 >= 187
#        define BOOST_PP_ITERATION_4 187
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 188 && BOOST_PP_ITERATION_FINISH_4 >= 188
#        define BOOST_PP_ITERATION_4 188
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 189 && BOOST_PP_ITERATION_FINISH_4 >= 189
#        define BOOST_PP_ITERATION_4 189
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 190 && BOOST_PP_ITERATION_FINISH_4 >= 190
#        define BOOST_PP_ITERATION_4 190
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 191 && BOOST_PP_ITERATION_FINISH_4 >= 191
#        define BOOST_PP_ITERATION_4 191
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 192 && BOOST_PP_ITERATION_FINISH_4 >= 192
#        define BOOST_PP_ITERATION_4 192
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 193 && BOOST_PP_ITERATION_FINISH_4 >= 193
#        define BOOST_PP_ITERATION_4 193
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 194 && BOOST_PP_ITERATION_FINISH_4 >= 194
#        define BOOST_PP_ITERATION_4 194
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 195 && BOOST_PP_ITERATION_FINISH_4 >= 195
#        define BOOST_PP_ITERATION_4 195
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 196 && BOOST_PP_ITERATION_FINISH_4 >= 196
#        define BOOST_PP_ITERATION_4 196
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 197 && BOOST_PP_ITERATION_FINISH_4 >= 197
#        define BOOST_PP_ITERATION_4 197
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 198 && BOOST_PP_ITERATION_FINISH_4 >= 198
#        define BOOST_PP_ITERATION_4 198
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 199 && BOOST_PP_ITERATION_FINISH_4 >= 199
#        define BOOST_PP_ITERATION_4 199
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 200 && BOOST_PP_ITERATION_FINISH_4 >= 200
#        define BOOST_PP_ITERATION_4 200
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 201 && BOOST_PP_ITERATION_FINISH_4 >= 201
#        define BOOST_PP_ITERATION_4 201
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 202 && BOOST_PP_ITERATION_FINISH_4 >= 202
#        define BOOST_PP_ITERATION_4 202
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 203 && BOOST_PP_ITERATION_FINISH_4 >= 203
#        define BOOST_PP_ITERATION_4 203
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 204 && BOOST_PP_ITERATION_FINISH_4 >= 204
#        define BOOST_PP_ITERATION_4 204
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 205 && BOOST_PP_ITERATION_FINISH_4 >= 205
#        define BOOST_PP_ITERATION_4 205
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 206 && BOOST_PP_ITERATION_FINISH_4 >= 206
#        define BOOST_PP_ITERATION_4 206
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 207 && BOOST_PP_ITERATION_FINISH_4 >= 207
#        define BOOST_PP_ITERATION_4 207
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 208 && BOOST_PP_ITERATION_FINISH_4 >= 208
#        define BOOST_PP_ITERATION_4 208
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 209 && BOOST_PP_ITERATION_FINISH_4 >= 209
#        define BOOST_PP_ITERATION_4 209
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 210 && BOOST_PP_ITERATION_FINISH_4 >= 210
#        define BOOST_PP_ITERATION_4 210
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 211 && BOOST_PP_ITERATION_FINISH_4 >= 211
#        define BOOST_PP_ITERATION_4 211
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 212 && BOOST_PP_ITERATION_FINISH_4 >= 212
#        define BOOST_PP_ITERATION_4 212
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 213 && BOOST_PP_ITERATION_FINISH_4 >= 213
#        define BOOST_PP_ITERATION_4 213
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 214 && BOOST_PP_ITERATION_FINISH_4 >= 214
#        define BOOST_PP_ITERATION_4 214
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 215 && BOOST_PP_ITERATION_FINISH_4 >= 215
#        define BOOST_PP_ITERATION_4 215
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 216 && BOOST_PP_ITERATION_FINISH_4 >= 216
#        define BOOST_PP_ITERATION_4 216
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 217 && BOOST_PP_ITERATION_FINISH_4 >= 217
#        define BOOST_PP_ITERATION_4 217
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 218 && BOOST_PP_ITERATION_FINISH_4 >= 218
#        define BOOST_PP_ITERATION_4 218
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 219 && BOOST_PP_ITERATION_FINISH_4 >= 219
#        define BOOST_PP_ITERATION_4 219
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 220 && BOOST_PP_ITERATION_FINISH_4 >= 220
#        define BOOST_PP_ITERATION_4 220
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 221 && BOOST_PP_ITERATION_FINISH_4 >= 221
#        define BOOST_PP_ITERATION_4 221
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 222 && BOOST_PP_ITERATION_FINISH_4 >= 222
#        define BOOST_PP_ITERATION_4 222
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 223 && BOOST_PP_ITERATION_FINISH_4 >= 223
#        define BOOST_PP_ITERATION_4 223
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 224 && BOOST_PP_ITERATION_FINISH_4 >= 224
#        define BOOST_PP_ITERATION_4 224
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 225 && BOOST_PP_ITERATION_FINISH_4 >= 225
#        define BOOST_PP_ITERATION_4 225
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 226 && BOOST_PP_ITERATION_FINISH_4 >= 226
#        define BOOST_PP_ITERATION_4 226
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 227 && BOOST_PP_ITERATION_FINISH_4 >= 227
#        define BOOST_PP_ITERATION_4 227
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 228 && BOOST_PP_ITERATION_FINISH_4 >= 228
#        define BOOST_PP_ITERATION_4 228
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 229 && BOOST_PP_ITERATION_FINISH_4 >= 229
#        define BOOST_PP_ITERATION_4 229
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 230 && BOOST_PP_ITERATION_FINISH_4 >= 230
#        define BOOST_PP_ITERATION_4 230
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 231 && BOOST_PP_ITERATION_FINISH_4 >= 231
#        define BOOST_PP_ITERATION_4 231
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 232 && BOOST_PP_ITERATION_FINISH_4 >= 232
#        define BOOST_PP_ITERATION_4 232
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 233 && BOOST_PP_ITERATION_FINISH_4 >= 233
#        define BOOST_PP_ITERATION_4 233
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 234 && BOOST_PP_ITERATION_FINISH_4 >= 234
#        define BOOST_PP_ITERATION_4 234
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 235 && BOOST_PP_ITERATION_FINISH_4 >= 235
#        define BOOST_PP_ITERATION_4 235
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 236 && BOOST_PP_ITERATION_FINISH_4 >= 236
#        define BOOST_PP_ITERATION_4 236
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 237 && BOOST_PP_ITERATION_FINISH_4 >= 237
#        define BOOST_PP_ITERATION_4 237
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 238 && BOOST_PP_ITERATION_FINISH_4 >= 238
#        define BOOST_PP_ITERATION_4 238
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 239 && BOOST_PP_ITERATION_FINISH_4 >= 239
#        define BOOST_PP_ITERATION_4 239
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 240 && BOOST_PP_ITERATION_FINISH_4 >= 240
#        define BOOST_PP_ITERATION_4 240
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 241 && BOOST_PP_ITERATION_FINISH_4 >= 241
#        define BOOST_PP_ITERATION_4 241
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 242 && BOOST_PP_ITERATION_FINISH_4 >= 242
#        define BOOST_PP_ITERATION_4 242
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 243 && BOOST_PP_ITERATION_FINISH_4 >= 243
#        define BOOST_PP_ITERATION_4 243
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 244 && BOOST_PP_ITERATION_FINISH_4 >= 244
#        define BOOST_PP_ITERATION_4 244
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 245 && BOOST_PP_ITERATION_FINISH_4 >= 245
#        define BOOST_PP_ITERATION_4 245
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 246 && BOOST_PP_ITERATION_FINISH_4 >= 246
#        define BOOST_PP_ITERATION_4 246
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 247 && BOOST_PP_ITERATION_FINISH_4 >= 247
#        define BOOST_PP_ITERATION_4 247
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 248 && BOOST_PP_ITERATION_FINISH_4 >= 248
#        define BOOST_PP_ITERATION_4 248
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 249 && BOOST_PP_ITERATION_FINISH_4 >= 249
#        define BOOST_PP_ITERATION_4 249
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 250 && BOOST_PP_ITERATION_FINISH_4 >= 250
#        define BOOST_PP_ITERATION_4 250
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 251 && BOOST_PP_ITERATION_FINISH_4 >= 251
#        define BOOST_PP_ITERATION_4 251
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 252 && BOOST_PP_ITERATION_FINISH_4 >= 252
#        define BOOST_PP_ITERATION_4 252
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 253 && BOOST_PP_ITERATION_FINISH_4 >= 253
#        define BOOST_PP_ITERATION_4 253
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 254 && BOOST_PP_ITERATION_FINISH_4 >= 254
#        define BOOST_PP_ITERATION_4 254
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 255 && BOOST_PP_ITERATION_FINISH_4 >= 255
#        define BOOST_PP_ITERATION_4 255
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
#    if BOOST_PP_ITERATION_START_4 <= 256 && BOOST_PP_ITERATION_FINISH_4 >= 256
#        define BOOST_PP_ITERATION_4 256
#        include BOOST_PP_FILENAME_4
#        undef BOOST_PP_ITERATION_4
#    endif
# endif
#
# undef BOOST_PP_ITERATION_DEPTH
# define BOOST_PP_ITERATION_DEPTH() 3
#
# undef BOOST_PP_ITERATION_START_4
# undef BOOST_PP_ITERATION_FINISH_4
# undef BOOST_PP_FILENAME_4
#
# undef BOOST_PP_ITERATION_FLAGS_4
# undef BOOST_PP_ITERATION_PARAMS_4


code:
/*=============================================================================
    Copyright (c) 2001-2007 Joel de Guzman

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if !defined(FUSION_INCLUDE_DEQUE)
#define FUSION_INCLUDE_DEQUE

#include <boost/fusion/support/config.hpp>
#include <boost/fusion/container/deque.hpp>

#endif


code:
// ----------------------------------------------------------------------------
//  alt_sstream.hpp : alternative stringstream
// ----------------------------------------------------------------------------

//  Copyright Samuel Krempp 2003. Use, modification, and distribution are
//  subject to the Boost Software License, Version 1.0. (See accompanying
//  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

//  See http://www.boost.org/libs/format for library home page

// ----------------------------------------------------------------------------

#ifndef BOOST_SK_ALT_SSTREAM_HPP
#define BOOST_SK_ALT_SSTREAM_HPP

#include <string>
#include <boost/format/detail/compat_workarounds.hpp>
#include <boost/utility/base_from_member.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/assert.hpp>

namespace boost {
    namespace io {

        template<class Ch, class Tr=::std::char_traits<Ch>,
                 class Alloc=::std::allocator<Ch> >
        class basic_altstringbuf;

        template<class Ch, class Tr =::std::char_traits<Ch>,
                 class Alloc=::std::allocator<Ch> >
        class basic_oaltstringstream;

        template<class Ch, class Tr, class Alloc>
        class basic_altstringbuf
            : public ::std::basic_streambuf<Ch, Tr>
        {
            typedef ::std::basic_streambuf<Ch, Tr>  streambuf_t;
            typedef typename CompatAlloc<Alloc>::compatible_type compat_allocator_type;
            typedef typename CompatTraits<Tr>::compatible_type   compat_traits_type;
        public:
            typedef Ch     char_type;
            typedef Tr     traits_type;
            typedef typename compat_traits_type::int_type     int_type;
            typedef typename compat_traits_type::pos_type     pos_type;
            typedef typename compat_traits_type::off_type     off_type;
            typedef Alloc                     allocator_type;
            typedef ::std::basic_string<Ch, Tr, Alloc> string_type;
            typedef typename string_type::size_type    size_type;

            typedef ::std::streamsize streamsize;

            explicit basic_altstringbuf(std::ios_base::openmode mode
                                        = std::ios_base::in | std::ios_base::out)
                : putend_(NULL), is_allocated_(false), mode_(mode)
                {}
            explicit basic_altstringbuf(const string_type& s,
                                        ::std::ios_base::openmode mode
                                        = ::std::ios_base::in | ::std::ios_base::out)
                : putend_(NULL), is_allocated_(false), mode_(mode)
                { dealloc(); str(s); }
            virtual ~basic_altstringbuf()
                { dealloc(); }
            using streambuf_t::pbase;
            using streambuf_t::pptr;
            using streambuf_t::epptr;
            using streambuf_t::eback;
            using streambuf_t::gptr;
            using streambuf_t::egptr;

            void clear_buffer();
            void str(const string_type& s);

            // 0-copy access :
            Ch * begin() const;
            size_type size() const;
            size_type cur_size() const; // stop at current pointer
            Ch * pend() const // the highest position reached by pptr() since creation
                { return ((putend_ < pptr()) ? pptr() : putend_); }
            size_type pcount() const
                { return static_cast<size_type>( pptr() - pbase()) ;}

            // copy buffer to string :
            string_type str() const
                { return string_type(begin(), size()); }
            string_type cur_str() const
                { return string_type(begin(), cur_size()); }
        protected:
            explicit basic_altstringbuf (basic_altstringbuf * s,
                                         ::std::ios_base::openmode mode
                                         = ::std::ios_base::in | ::std::ios_base::out)
                : putend_(NULL), is_allocated_(false), mode_(mode)
                { dealloc(); str(s); }

            virtual pos_type seekoff(off_type off, ::std::ios_base::seekdir way,
                                     ::std::ios_base::openmode which
                                     = ::std::ios_base::in | ::std::ios_base::out);
            virtual pos_type seekpos (pos_type pos,
                                      ::std::ios_base::openmode which
                                      = ::std::ios_base::in | ::std::ios_base::out);
            virtual int_type underflow();
            virtual int_type pbackfail(int_type meta = compat_traits_type::eof());
            virtual int_type overflow(int_type meta = compat_traits_type::eof());
            void dealloc();
        private:
            enum { alloc_min = 256}; // minimum size of allocations

            Ch *putend_;  // remembers (over seeks) the highest value of pptr()
            bool is_allocated_;
            ::std::ios_base::openmode mode_;
            compat_allocator_type alloc_;  // the allocator object
        };

// ---   class basic_oaltstringstream ----------------------------------------
        template <class Ch, class Tr, class Alloc>
        class basic_oaltstringstream
            : private base_from_member< shared_ptr< basic_altstringbuf< Ch, Tr, Alloc> > >,
              public ::std::basic_ostream<Ch, Tr>
        {
            class No_Op {
                // used as no-op deleter for (not-owner) shared_pointers
            public:
                template<class T>
                const T & operator()(const T & arg) { return arg; }
            };
            typedef ::std::basic_ostream<Ch, Tr> stream_t;
            typedef boost::base_from_member<boost::shared_ptr<
                basic_altstringbuf<Ch,Tr, Alloc> > >
                pbase_type;
            typedef ::std::basic_string<Ch, Tr, Alloc>  string_type;
            typedef typename string_type::size_type     size_type;
            typedef basic_altstringbuf<Ch, Tr, Alloc>   stringbuf_t;
        public:
            typedef Alloc  allocator_type;
            basic_oaltstringstream()
                : pbase_type(new stringbuf_t), stream_t(rdbuf())
                { }
            basic_oaltstringstream(::boost::shared_ptr<stringbuf_t> buf)
                : pbase_type(buf), stream_t(rdbuf())
                { }
            basic_oaltstringstream(stringbuf_t * buf)
                : pbase_type(buf, No_Op() ), stream_t(rdbuf())
                { }
            stringbuf_t * rdbuf() const
                { return pbase_type::member.get(); }
            void clear_buffer()
                { rdbuf()->clear_buffer(); }

            // 0-copy access :
            Ch * begin() const
                { return rdbuf()->begin(); }
            size_type size() const
                { return rdbuf()->size(); }
            size_type cur_size() const // stops at current position
                { return rdbuf()->cur_size(); }

            // copy buffer to string :
            string_type str()     const   // [pbase, epptr[
                { return rdbuf()->str(); }
            string_type cur_str() const   // [pbase, pptr[
                { return rdbuf()->cur_str(); }
            void str(const string_type& s)
                { rdbuf()->str(s); }
        };

    } // N.S. io
} // N.S. boost

#include <boost/format/alt_sstream_impl.hpp>

#endif // include guard


code:
/*
 [auto_generated]
 boost/numeric/odeint/external/compute/compute_resize.hpp

 [begin_description]
 Enable resizing for Boost.Compute vector
 [end_description]

 Copyright 2009-2011 Karsten Ahnert
 Copyright 2009-2011 Mario Mulansky

 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or
 copy at http://www.boost.org/LICENSE_1_0.txt)
 */

#ifndef BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED
#define BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED

#include <boost/compute/container/vector.hpp>

#include <boost/numeric/odeint/util/copy.hpp>

namespace boost {
namespace numeric {
namespace odeint {

template< class T, class A >
struct is_resizeable< boost::compute::vector< T , A > >
{
    struct type : public boost::true_type { };
    const static bool value = type::value;
};

template< class T, class A >
struct same_size_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
{
    static bool same_size( const boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
    {
        return x.size() == y.size();
    }
};

template< class T, class A >
struct resize_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
{
    static void resize( boost::compute::vector< T, A > &x , const boost::compute::vector< T, A > &y )
    {
        x.resize( y.size() );
    }
};

template< class Container1, class T, class A >
struct copy_impl< Container1 , boost::compute::vector< T, A > >
{
    static void copy( const Container1 &from , boost::compute::vector< T, A > &to )
    {
        boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
    }
};

template< class T, class A, class Container2 >
struct copy_impl< boost::compute::vector< T, A > , Container2 >
{
    static void copy( const boost::compute::vector< T, A > &from , Container2 &to )
    {
        boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
    }
};

template< class T, class A >
struct copy_impl< boost::compute::vector< T, A > , boost::compute::vector< T, A > >
{
    static void copy( const boost::compute::vector< T, A > &from , boost::compute::vector< T, A > &to )
    {
        boost::compute::copy( boost::begin( from ) , boost::end( from ) , boost::begin( to ) );
    }
};

} // odeint
} // numeric
} // boost

#endif // BOOST_NUMERIC_ODEINT_EXTERNAL_COMPUTE_COMPUTE_RESIZE_HPP_DEFINED


code:
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
// (C) Copyright 2007 Anthony Williams
// (C) Copyright 2011-2012 Vicente J. Botet Escriba

#ifndef BOOST_THREAD_LOCK_OPTIONS_HPP
#define BOOST_THREAD_LOCK_OPTIONS_HPP

#include <boost/config/abi_prefix.hpp>

namespace boost
{
  struct defer_lock_t
  {
  };
  struct try_to_lock_t
  {
  };
  struct adopt_lock_t
  {
  };

  BOOST_CONSTEXPR_OR_CONST defer_lock_t defer_lock = {};
  BOOST_CONSTEXPR_OR_CONST try_to_lock_t try_to_lock = {};
  BOOST_CONSTEXPR_OR_CONST adopt_lock_t adopt_lock = {};

}
#include <boost/config/abi_suffix.hpp>

#endif


code:
#if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
#ifndef BOOST_PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
#define BOOST_PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP

#include <boost/phoenix/support/iterate.hpp>

#include <boost/phoenix/core/detail/cpp03/preprocessed/actor_operator.hpp>

#endif
#else

#if !BOOST_PHOENIX_IS_ITERATING

#ifndef BOOST_PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP
#define BOOST_PHOENIX_CORE_DETAIL_ACTOR_OPERATOR_HPP

#include <boost/phoenix/support/iterate.hpp>

#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/actor_operator_" BOOST_PHOENIX_LIMIT_STR ".hpp")
#endif
/*==============================================================================
    Copyright (c) 2005-2010 Joel de Guzman
    Copyright (c) 2010 Thomas Heller

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/

#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(preserve: 1)
#endif

#define M0(Z, N, D)                                                             \
    typename detail::result_type_deduction_helper<BOOST_PP_CAT(A, N)>::type     \
/**/

#define BOOST_PHOENIX_ITERATION_PARAMS                                          \
        (3, (1, BOOST_PHOENIX_ACTOR_LIMIT,                                      \
        <boost/phoenix/core/detail/cpp03/actor_operator.hpp>))
#include BOOST_PHOENIX_ITERATE()

#undef M0

#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(output: null)
#endif

#endif

#else

#if BOOST_PHOENIX_ITERATION >= BOOST_PHOENIX_PERFECT_FORWARD_LIMIT

        template <typename This, BOOST_PHOENIX_typename_A>
        struct result<This(BOOST_PHOENIX_A)>
            : result<This(BOOST_PHOENIX_A_const_ref)>
        {};

        template <typename This, BOOST_PHOENIX_typename_A>
        struct result<This(BOOST_PHOENIX_A_ref)>
            : result_of::actor<proto_base_expr, BOOST_PHOENIX_A_ref>
        {};

        template <BOOST_PHOENIX_typename_A>
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_A_ref>::type
        operator()(BOOST_PHOENIX_A_ref_a)
        {
            typedef
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<
                    const actor<Expr> *, BOOST_PHOENIX_A_ref
                >
                env_type;
            env_type env = {this, BOOST_PHOENIX_a};

            return phoenix::eval(*this, phoenix::context(env, default_actions()));
        }

        template <BOOST_PHOENIX_typename_A>
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_A_ref>::type
        operator()(BOOST_PHOENIX_A_ref_a) const
        {
            typedef
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<
                    const actor<Expr> *, BOOST_PHOENIX_A_ref
                >
                env_type;
            env_type env = {this, BOOST_PHOENIX_a};

            return phoenix::eval(*this, phoenix::context(env, default_actions()));
        }

        template <BOOST_PHOENIX_typename_A>
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_A_const_ref>::type
        operator()(BOOST_PHOENIX_A_const_ref_a)
        {
            typedef
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<
                    const actor<Expr> *, BOOST_PHOENIX_A_const_ref
                >
                env_type;
            env_type env = {this, BOOST_PHOENIX_a};

            return phoenix::eval(*this, phoenix::context(env, default_actions()));
        }

        template <BOOST_PHOENIX_typename_A>
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_A_const_ref>::type
        operator()(BOOST_PHOENIX_A_const_ref_a) const
        {
            typedef
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<
                    const actor<Expr> *, BOOST_PHOENIX_A_const_ref
                >
                env_type;
            env_type env = {this, BOOST_PHOENIX_a};

            return phoenix::eval(*this, phoenix::context(env, default_actions()));
        }

#else

// We need to define operator() for all permutations of reference types.
// For BOOST_PHOENIX_ITERATION <= BOOST_PHOENIX_LIMIT_PREFECT_FORWARD
// 2^BOOST_PHOENIX_ITERATION overloads are created
// For compile time reasons,
// if BOOST_PHOENIX_ITERATION > BOOST_PHOENIX_LIMIT_PERFECT_FORWARD
// only operator()(A const &...a) and operator()(A &...a) are generated
// this is all handled by the PP mumbo jumbo above
#define BOOST_PHOENIX_ACTOR_OPERATOR(_, I, __)                                  \
        template <typename This, BOOST_PHOENIX_typename_A>                      \
        struct result<This(BOOST_PHOENIX_PERM_A(I))>                            \
            : result_of::actor<proto_base_expr, BOOST_PHOENIX_PERM_A(I)>        \
        {};                                                                     \
                                                                                \
        template <BOOST_PHOENIX_typename_A>                                     \
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_PERM_A(I)>::type\
        operator()(BOOST_PHOENIX_PERM_A_a(I)) const                             \
        {                                                                       \
            typedef                                                             \
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<    \
                    const actor<Expr> *, BOOST_PHOENIX_PERM_A(I)                \
                >                                                               \
                env_type;                                                       \
            env_type env = {this, BOOST_PHOENIX_a};                             \
                                                                                \
            return phoenix::eval(*this, phoenix::context(env, default_actions()));\
        }                                                                       \
                                                                                \
        template <BOOST_PHOENIX_typename_A>                                     \
        typename result_of::actor<proto_base_expr, BOOST_PHOENIX_PERM_A(I)>::type\
        operator()(BOOST_PHOENIX_PERM_A_a(I))                                   \
        {                                                                       \
            typedef                                                             \
                BOOST_PP_CAT(vector, BOOST_PP_INC(BOOST_PHOENIX_ITERATION))<    \
                    const actor<Expr> *, BOOST_PHOENIX_PERM_A(I)                \
                >                                                               \
                env_type;                                                       \
            env_type env = {this, BOOST_PHOENIX_a};                             \
                                                                                \
            return phoenix::eval(*this, phoenix::context(env, default_actions()));\
        }                                                                       \
        /**/

        template <typename This, BOOST_PHOENIX_typename_A>
        struct result<This(BOOST_PHOENIX_A)>
            : result<This(BOOST_PP_ENUM(BOOST_PHOENIX_ITERATION, M0, _))>
        {};

        BOOST_PP_REPEAT(BOOST_PHOENIX_PERM_SIZE, BOOST_PHOENIX_ACTOR_OPERATOR, _)

#undef BOOST_PHOENIX_ACTOR_OPERATOR

#endif

#endif

#endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES


code:
/*=============================================================================
    Copyright (c) 2001-2011 Joel de Guzman

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    This is an auto-generated file. Do not edit!
==============================================================================*/

#if FUSION_MAX_DEQUE_SIZE <= 10
#include <boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque10.hpp>
#elif FUSION_MAX_DEQUE_SIZE <= 20
#include <boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque20.hpp>
#elif FUSION_MAX_DEQUE_SIZE <= 30
#include <boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque30.hpp>
#elif FUSION_MAX_DEQUE_SIZE <= 40
#include <boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque40.hpp>
#elif FUSION_MAX_DEQUE_SIZE <= 50
#include <boost/fusion/container/deque/detail/cpp03/preprocessed/as_deque50.hpp>
#else
#error "FUSION_MAX_DEQUE_SIZE out of bounds for preprocessed headers"
#endif